Abfängerprobleme
-
Hallo,
ich fang gerade mit c++ an, hab visual studio unter xp laufen,
nun folgendes Programm geschrieben, beim ausführen hängt er sich auf.
Liegt es an meinem Quellcode?
:// Rechnung.cpp : Definiert den Einsprungpunkt für die Konsolenanwendung.
//#include "stdio.h"
int main(int argc,int sum,int a,int b, char* argv[])
{printf("Bitte Zahl a eingeben: ");
scanf("%d,a");
printf("Bitte Zahl b eingeben: \n");
scanf("%d,b");
sum=(a+b);
printf("Summe: %.0\n",sum);return 0;
}Gruß
Rene
-
Hallo Rene20,
Erstens: Das ist C-Code, warum also postest du im C++ Forum?
Zweitens: Der Funktionskopf von main() ist so kein Standard. (Es existieren nur zwei mögliche Prototypen von main(). erstensint main(void);und
int main(int argc, char* argv[]);). Stattdessen solltest du die weiteren Variablen aus dem Funktionskopf von main() im Block deklarieren.)
Drittens: Du benutzt scanf() falsch.
Am besten du schaust dir nochmal Ein/Ausgabe in einem Tutorial deiner Wahl an.

Nach diesen Veränderungen sieht dein Programm so aus und sollte sich problemlos kompilieren lassen:
#include "stdio.h" int main() // Du brauchst in diesem Falle gar keine Parameter, da diese nicht verarbeitet werden. { int a, b, sum; // Deklaration der Variablen am Blockanfang. printf("Bitte Zahl a eingeben: "); scanf("%d", &a); // beachte Benutzung von scanf(). printf("Bitte Zahl b eingeben: \n"); scanf("%d", &b); sum = a + b; // Klammern nicht notwendig printf("Summe: %d\n", sum); // Kenn mich in C nicht so aus, aber was bewirkt %.0 denn? Egal: %d ist auf jedenfall korrekt. return 0; }/edit: Wie hast du den deinen Compiler konfiguriert?
(Oder warum schreibst du include "stdio.h"?)
/edit 2 und 3: ...
Caipi
-
Also,
Sorry fürs falsche Forum, und Danke für die Hilfe, jetzt läuft es.
Um alle Fragen zu beantworten, ich versuche C quasi im Selbststudium zu lernen, daher die Fehler.
Danke für den Tip mit den Variablen.
Gruß
Rene
-
Hi,
Um alle Fragen zu beantworten, ich versuche C quasi im Selbststudium zu lernen, daher die Fehler.
aus welchen Bücher lernt man denn sowas:
int main(int argc,int sum,int a,int b, char* argv[])Ich kann dir dann noch www.pronix.de empfehlen, das sollte dir dein Einstieg etwas erleichtern.
-
CarstenJ schrieb:
Ich kann dir dann noch www.pronix.de empfehlen, das sollte dir dein Einstieg etwas erleichtern.
Mit Pronix etwas aufpassen...da sind ein paar kleinere Fehler drin.
-
CarstenJ schrieb:
aus welchen Bücher lernt man denn sowas:
int main(int argc,int sum,int a,int b, char* argv[])Das Sind die Parameter für Windows Programmierung (a,b sind Handles = int)- oder nicht? Also wahrscheinlich in einem Buch über Windows-Programmierung.
-
Bei scanf("%d", &b); --> wenn b kein Feld (Array) ist muss immer der Referenzoperator davor stehen!!! -> scanf weiß sonst nicht wirklich, wo es die Variable hinschreiben soll!
-
Tc++H schrieb:
Bei scanf("%d", &b); --> wenn b kein Feld (Array) ist muss immer der Referenzoperator davor stehen!!! -> scanf weiß sonst nicht wirklich, wo es die Variable hinschreiben soll!
Öhm du meinst Adressoperator vermute ich
-
Hallo,
jetzt muss ich mich doch nochmal melden.
Also da es ein paar Unklarheiten gab.
1. Ich fange gerade mit C/C** an benutze dazu visual studio.
2. Ich programmiere zur Zeit nur Konsolenanwendungen.
Der angesprochene Quelltext (int main...) wurde vorgeneriert da ich selbst noch nicht weis was es bedeutet habe ich mich nicht daran vergriffen. - Soviel dazu.
In welches forum soll ich nun in Zukunft posten? - Mir wurde gesagt das dies das falsche sei.
Gruß
René
-
Rene20 schrieb:
1. Ich fange gerade mit C/C** an benutze dazu visual studio.
hör mit c auf und fang mit c++ an.
2. Ich programmiere zur Zeit nur Konsolenanwendungen.
das ist gut.
In welches forum soll ich nun in Zukunft posten?
hängt von der frage ab.
frage zum obigen quelltext: ansi-c-forum. weil kein happen c++ daran war, sondern das verpäte printf, das verbotene scanf und das schreckliche blockanfangsallesdefinieren (ok, das hat nicht du eingebaut).
frage, wie du den compiuler bedienst: im entsprechenden compilerforum. das visual studio wird auch gerne als MSVC abgekürzt.
frage zu fehlermeldung: fast immer in ansi-c. nur sachen zu precompiled headers oder so im compilerforum.
wenn du dann nach c++ umschwenkst, ersteze das ansi-c-forum durch das hier.
ist aber nicht schlimm, wenn du im falschen forum fragst. hat ja geklappt, im c++-forum auch ne c-frage beantwortet zu bekommen. und oftmals kansste ja noch gar nicht unterscheiden, ob das jetzt ne c- oder ne c++- oder ne compilerfrage ist.
nicht vergessen, daß manche programierfragen auch ins matheforum gehören. warum sich da rundungsfehler anhäufen, wie man nur mit ln und exp die dritte wurzel berechnen kann und so.
und manche gehören nach "rund um die programmierung", wenn es offensichtlich in vielen so gemacht weden kann, sagen wir mal, du fragst, wie shell-sort funktioniert.