Eingabe in einer Schleife
-
Hi Leute,
schaut euch mal den Code an:
#include <iostream> int main() { // deklarieren der benötigten Variablen int i; char satz[255], weitere; // Sätze eintragen do { // Eingabe des Satzes std::cout << "Satz: "; std::cin.get(satz, 255); ... // Abfrage, ob mehr Sätze eingetragen werden sollen std::cout << "Weitere Sätze? "; std::cin >> weitere; } while(weitere == 'j' || weitere == 'J'); return 0; }Wenn ich den starte, dann gebe ich den Satz ein und da ich noch einen Satz eintragen möchte gebe ich ein j ein. Nun spinnt das Programm rum und läuft die ganze Zeit durch. Ich kann nichts mehr machen außer das Programm zu beenden. Wie kann ich den Durchlauf verhindern? Danke schonmal...
MfG Apo
-
das std::cin >> bla lässt das newline im buffer liegen, deswegen musst du es vor der eingabe mit get ignorieren:
std::cin.ignore(); // ignoriert ein zeichenoder gleich den ganzen buffer leeren:
std::cin.sync();mfg.
-
Aso..., okay! Danke..., es funktioniert nun.
MfG Apo