PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was mache ich falsch?



Nur4mon
21.07.2009, 22:01
Also, ich bin ein absoluter Laie was C++ angeht und heute habe ich angefangen mich da etwas reinzulesen.

Mein Ziehl:

Ich möchte ein einfaches additions Programm schreiben.


#include <iostream>

using namespace std;


int main()
{
int Zahl1;
cin >> Zahl1;
int Zahl2;
cin >> Zahl2;

int Ergebnis;
Ergebnis = Zahl1 + Zahl2;


cout << Zahl1 << ":" << '\n';


cout << "addiert mit:" << '\n';

cout << Zahl2 << ":" << '\n';

cout << Ergebnis;
}


Problem: Funzt net :(

Was ist mein Fehler?

mfg, Marc

Sirect
21.07.2009, 22:05
Das Programm "[3328] durchfall.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

Läuft doch?



2
4
2:
addiert mit:
4:
6


:)

Nur4mon
21.07.2009, 22:07
Läuft ja, aber es gibt kein Ergebnis aus. Nach eingabe der zwei Zahlen schließt es.

gf0x
21.07.2009, 22:12
#include <iostream>
#include <stdlib.h>

using namespace std;


int main()
{
int Zahl1;
cin >> Zahl1;
int Zahl2;
cin >> Zahl2;

int Ergebnis;
Ergebnis = Zahl1 + Zahl2;


cout << Zahl1 << ":" << '\n';


cout << "addiert mit:" << '\n';

cout << Zahl2 << ":" << '\n';

cout << Ergebnis;

system("PAUSE")
}Ich denke mal so müsste es gehen.

Eben kein Compiler on board.

blackberry
21.07.2009, 22:15
Das Programm funktioniert doch, also was ist dein Problem?

Wenn du dich wunderst warum sich dein Programm dauernt schließt dann schau mal hier:
http://free-hack.com/showthread.php?t=39343

Folgender Code sollte deiner Meinung nach wohl richtig sein: (dein Code war, wie gesagt, sowieso schon richtig)


#include <iostream>

using namespace std;


int main()
{
int Zahl1;
cin >> Zahl1;
int Zahl2;
cin >> Zahl2;

int Ergebnis;
Ergebnis = Zahl1 + Zahl2;


cout << Zahl1 << ":" << '\n';


cout << "addiert mit:" << '\n';

cout << Zahl2 << ":" << '\n';

cout << Ergebnis;

fflush(stdin); // Eingabepuffer leeren
cin.get(); // auf Benutzereingabe warten
return 0;
}
Nett wäre es auch den Code etwas einzurücken (ich hab mir jetzt nicht mehr die Mühe gemacht) und die Variablen nicht kurz vor der Benutzung zu deklarieren (da verliert man leicht den Überblick), sowie sicherzugehen, dass cin >> Zahl1; und cin >> Zahl2; jeweils sich selbst (cin) zurückgeben - dann kann man sichergehen, dass das Parsen der Zahlen gut verlaufen ist und der Benutzer nicht irgendwelchen Mist eingegeben hat!


mfG. BlackBerry

EDIT: zu langsam.

Nur4mon
21.07.2009, 22:18
Jup! Mit
system("PAUSE");} funzt es. Kann mit jmd. noch erklären was das genau bewirkt?

blackberry
21.07.2009, 22:21
Es ruft das Windows-Programm "pause" auf, welches auf Benutzereingabe wartet (Enter)

Nur4mon
21.07.2009, 22:34
Aha, okey. Danke vielmal an alle Helfer. (Juhuu, mein erstes C++ Programm) ;-)

St3r3oboy
26.07.2009, 02:57
ja bei konsolenanwendungen is das meistens das problem mit dem selbstständigem schliessen ... das mit system("PAUSE");} is natürlich die beste lösung ... ich mach es jedoch immer so dass ich mit dem time.h header arbeite ... setze mir dann selbst immer zeiten in denen sich dass proggi selbst schliesst .. nur so n tipp am rande wissen schadet nicht =) :

http://www.cplusplus.com/reference/clibrary/ctime/

Kolabi
26.07.2009, 10:27
ja bei konsolenanwendungen is das meistens das problem mit dem selbstständigem schliessen ... das mit system("PAUSE");} is natürlich die beste lösung ...

Das hast du nicht gesagt ;) ,
mit System() sollte man immer vorsichtig arbeiten, da das immer vom Betriebsystem abhängt. Auf Linux habe ich kein system("pause").

Am besten benutzt man cin.get();

m4nuh
26.07.2009, 11:19
Oder am besten ruft man das Programm direkt in der Konsole auf, und spart sich eine letzte Eingabeaufforderung oder die system("pause") ;)

blackberry
26.07.2009, 11:36
Kennen wir alles schon von hier: http://free-hack.com/showthread.php?t=39343

Daher:
/closed