Frage von huhuu, 44

c++ programm beendet sich automatisch?

Hallo. Und zwar beendet sich das von mir erstellte Programm immer automatisch wenn ich es öffne. Dies kann man ja theoretisch mit cin.get() beheben. So habe ich das auch die ganze Zeit gemacht. Jetzt habe ich ein Programm das mich fragt wie oft ich hallo sagen will xD ich gebe die gewünschte anzahl ein...bestätige und während die ganzen Hallo´s ausgegeben werden beendet sich das Programm wieder.

cin.get() bewirkt ja quasi das sich das Programm erst mit einer Eingabe beendet. Die Eingabe bekommt es ja schon wenn ich zb die Anzahl an Hallo´s eintippe und bestätige. Also dachte ich das ich cin.get() einfach weglasse.......doch leider bringt das keinen Unterschied.

Wie kann ich das beheben? kennt sich jemand aus?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TuttiKirBaum, 42

Du musst am Ende noch den Befehl getchar() setzen.

Kommentar von huhuu ,

wo und wie genau? Funktioniert nicht. Soll dafür das cin.get() weg?

Kommentar von TuttiKirBaum ,

Mach mal das cin.get() weg und setze unter return 0; getchar() ein

Kommentar von huhuu ,

dann sagt er mir error getchar() was not declared in this scope

Kommentar von TuttiKirBaum ,

Kannst du mir einmal den Code schicken? 

Kommentar von TuttiKirBaum ,

int main()
{
// Dein Code
std::flush();
std::cin.get();

return 0;
}

Kommentar von huhuu ,

ok es geht jetzt endlich.......ich habe keine Ahnung weshalb da jetzt nichts anders ist. Ich hatte das mit deiner Version Probiert aber dann hat er mir wieder fehler angezeigt. Dann hatte ich des nochmal gelöscht und wieder probier und es ging. 

Antwort
von spaghetticode, 15

Ist logisch - dein cin liest die Anzahl als Integer ein und belässt den Druck auf die ENTER-Taste im Puffer. Dein cin.get() am Ende bekommt dann diesen ENTER-Druck und ist ebenfalls zufrieden, also ist das Programm zuende.

Nur zur Erklärung - die Lösung hat TuttiKirBaum ja schon beschrieben (in seinem letzten Kommentar; den Unfug mit getchar() lässt du bitte bleiben, das ist nicht standardkonform).

Kommentar von huhuu ,

Ja wie gesagt das cin.get() keinen Sinn macht , da ich das Programm dadurch vorzeitig beende, hatte ich ja festgestellt. Aber auch wenn ich es weg lasse habe ich ja immernoch das Problem obwohl ich das Programm nun 1 zu 1 aus dem Buch abgeschrieben habe. 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten