Mit Enter Eingabe, eine Funktion ausführen
-
Danke.
Nur leider übergeht der diese Anweisung, und springt direkt wieder ins Hauptmenü. Hast du eine Idee, wieso mein compiler das macht?
case 2: system("cls"); for(int i=0; i < 499; i++){ if(la[i].getstartnr() > 0){ la[i].ausgeben(); continue; } else { break; } } cout<<"Bitte ENTER-Taste drücken"; while(cin.get()=='\n'){ break; } break; case 3:
-
So vll.:
bool finished= false; do{ switch(...){ . . . . case 2: system("cls"); for(int i=0; i < 499; i++){ if(la[i].getstartnr() > 0){ la[i].ausgeben(); continue; } else { break; } } cout<<"Bitte ENTER-Taste drücken"; while(cin.get()=='\n'){ finished= true; } break; case 3: . . .. } }while(!finished);
-
Martini123 schrieb:
Nur leider übergeht der diese Anweisung, und springt direkt wieder ins Hauptmenü. Hast du eine Idee, wieso mein compiler das macht?
while(cin.get()=='\n'){ break; }Du springst ja schon im ersten Durchlauf aus der "Warte auf Enter"-Schleife raus

PS: Mir ist gerade ein Fehler bei meinem Code aufgefallen - es muß
while(cin.get()!='\n')heißen.
-
Wenn das so realisiere, dann wartet der Compiler an der Stelle,
aber bei eingabe von Return, passiert leider nichts. Es kommt
auch kein Compiler-Fehler
-
@BorisDieKlinge Bei der Lösung passiert bei Eingabe des Returns nichts, aber hier wird nicht sofort ins Hauptmenü gesprochen
@CStoll
Auch wenn ich in der while-schleife das break entferne, wird die whileschleife übergangen und ich befinde mich wieder im hauptmenü (ohne enter eingeben zu können)
-
*grübelt* Was war denn das letzte, was du vor dem switch()-Block eingegeben hast? Ich würde ja vermuten, daß von der letzten Eingabe noch ein ENTER im Tastaturpuffer zurückgeblieben ist, das du erst entsorgen mußt (schau dir mal cin.ignore() an).
-
Also zuerst geh unter menüpunkt 1 rein, um die Objekte anzulegen, nach der letzten eingabe, befinde ich wieder im Hauptmenü.
Nun geb ich die Zahl 2 ein um in den Menüpunkt zukommen (case 2), die Eingabe 2
muss ich natürlich mit enter bestätigen.Könnte es daran liegen? Wenn ja, was muss ich dann machen?
Vielen Dank, dass du versuchst mir weiterzuhelfen.
-
achso sorry, hast du ja geschrieben, dass es daran liegen könnten

Nur zum Verständnis, was und an welcher Stelle muss ich jetzt was ignorieren?
-
cin.ignore(); // evtl. mußt du hier Parameter angeben while(cin.get()!='\n') { }
-
Jetzt geht es, *freu*
Ich bedanke mich bei allen Beteiligten und wünsche euch noch
einen schönen Tag.Gruß
Martini