Warum schließt die Konsole, nachdem ich cin.get () eingebunden habe?

8

Ich habe gerade angefangen, C ++ mit C ++ Primer Plus zu lernen, aber ich habe Probleme mit einem der Beispiele. Wie im Buch angegeben, habe ich am Ende cin.get() eingefügt, um zu verhindern, dass sich die Konsole von selbst schließt. In diesem Fall wird es jedoch immer noch geschlossen, es sei denn, ich füge zwei cin.get() -Anweisungen hinzu, die ich nicht verstehe. Ich verwende Visual Studio Express 2010.

%Vor%     
FlowofSoul 18.06.2011, 19:01
quelle

4 Antworten

12
%Vor%

Diese Zeile hinterlässt ein nacheilendes Newline-Token im Eingabestream, das dann vom nächsten cin.get() verbraucht wird. Mach einfach eine einfache cin.ignore() direkt davor:

%Vor%     
Xeo 18.06.2011, 19:04
quelle
6

Weil cin >> carrots den Zeilenumbruch nicht liest, den Sie eingeben, nachdem Sie die Ganzzahl typisiert haben, und cin.get() liest die Zeilenumschaltung, die im Eingabestream übrig geblieben ist, und dann endet das Programm. Deshalb schließt sich die Konsole.

    
Nawaz 18.06.2011 19:04
quelle
2
%Vor%

liest ein int , hinterlässt jedoch einen Zeilenumbruch.

%Vor%

liest diesen Zeilenumbruch und das Programm endet.

    
Bo Persson 18.06.2011 19:05
quelle
1
%Vor%

Ruft eine ganzzahlige Eingabe ab und hinterlässt nach dem Drücken der Eingabetaste eine neue Zeile.

%Vor%

Platzieren Sie dies, nachdem Sie Eingaben erhalten haben, um das Beenden der Konsole zu vermeiden.

    
Wennie Valles Sasotona 25.05.2014 07:18
quelle

Tags und Links