integer keine zahl
-
hey,
wenn man eine schleife hatint main () { int Auswahl; do { cout << "1 - Funktion" << endl; cout << "2 - Beenden" << endl; cin >> Auswahl; switch (Auswahl) { case 1: Funktion (); cout << endl; break; case 2: cout << "Programm beendet" << endl; break; default: cout << "Fehler!" << endl; } } while (Auswahl != 2); Sleep(500); return 0; }Und die Eingabe kein integer, also keine Zahl ist kommt ja eine Dauerschleife. Wie kann man das umgehen?
-
-
oder du machst es einfacher und fängst eine falsche eingabe so ab.
if(!cin) { cin.ignore(); cin.clear(); cout<<"Fehler bei der Eingabe"; cin>>...//hier muss eine neue eingabe rein }
-
@Firefighter: Ich denke nein ... das geht so definitiv nicht.
-
ich denke doch, so wurde es mir hier im forum auch erklärt

natürlich muss noch eine schleife drum...um immer zu gucken ob eine fehlereingabe kam
-
Du hast deinen Beitrag 1. Editiert, nachdem ich das geschrieben habe und 2. ist der Fehler deswegen immernoch drin. operator>> ließt nicht ein, solange ein error-flag gesetzt ist!
-
ja das is richtig, ich habe in meinem ersten beitrag nur das cout vor das cin gesetzt, darf man doch oder
aber wegen der richtigkeit werde ich das was du beanstandest natürlich auch noch umändern, weil du recht hast, das die flags vorher wieder zurückgesetzt werden müssen