Um verwirrung zu vermeiden mal eine ausfuehrliche Erklaehrung.
Aber zuerst ein paar generellgueltige Aussagen.
1. DAS IST KEIN FEHLER
2. IHR SEID ALLE GUI VERWOEHNT
So . und nun zum Problem ...
C(++) hat standardmaessig nur Funktionen um Text auf der Console auszugeben, also dort, wo auch die Eingabeaufforderung ist. In den alten DOS Zeiten oder unter Linux ist das ganze kein Problem, da man ohnehin immer auf der Console gearbeitet hat. Seit aber GUIs wie Windows etc modern wurden, rueckte die Eingabeaufforderung immer mehr in den Hintergrung. Wenn Windows ueber ein Programm stolpert, das die Console braucht, macht es ein Dosfenster auf, fuehrt das Programm aus, und schliesst das Fenster sofort nach Ende des Programms. Da dein Programm nichts tut, ausser einem Text auszugeben, siehst du nichts, da Windows das Fenster gleich danach schliesst. Wenn du allerdings von der Eingabeaufforderung (Start->Ausfuehren->CMD) dein Programm startest, kommst du nach dem Programmende erneut zur Eingabeaufforderung zurueck, das Fenster bleibt offen (da ja noch der befehlsinterpreter laeuft) und du siehst den Text. Die einfachste, aber auch nervige Loesung ist, dass du einfach einen Befehl einbaust, der den Benutzer zu einer Eingabe auffordert, eben system("pause"), der den DOS-befehl pause aufruft, der den Text "bitte druecken sie eine Taste" ausgibt, oder getch() welches darauf wartet, dass du eine Taste drueckst. Alternativ kannst du auch ein einfaches char c; cin>>c; verwenden. Alle drei Faelle haben gemein, dass dein Programm nicht beendet ist, bevor du nicht die Eingabe gemacht hast, und dadurch das DOS-Fenster so lange offen bleibt und du den Text lesen kannst. Das hat allerdings den Nachteil, dass wenn du das programm von der Eingabeaufforderung aus startest (wie unter linux ueblich), du ebenfalls jedesmal ne taste druecken musst, und das Programm damit fuer den Batchbetrieb praktisch unbrauchbar wird. Eine elegantere Loesung faellt mir allerdings auch nicht ein.
Aber mach dir nichts draus ... Mehr als 90% aller C(++) Anfaenger unter Windows haben das selbe Problem, weshalb es afaik im "Lies mich zuerst" (oder wars im FAQ ?) Thread detailiert erklaehrt wird.
Edit: Ok, es steht in den Threads nicht drin. Ich habe das wohl schon so oft erklaehrt, dass ich dachte, das das da drin steht ^^





Zitieren






