Eingabefehler verhindern ?
-
Hallo,
ich habe nun erfolgreich meine Telefonliste geschrieben. Ok, zu 95% erfolgreich und gehe nun an die Feinheiten.
Ich habe folgendes Problem. Bei meiner Eingabeaufforderung:
main()
int auswahl;cout << "Auswahl: ";
cin >> auswahl;Flippt das Programm aus, wenn ich einen Buchstaben statt einer Zahl eingebe.
nun habe ich versucht zusätzlich
#include <limits> in die header-datei zu packen und anschließend folgendes zu schreiben.
if (cin.fail()) {
cerr << "Fehlerhafte Eingabe" << endl << endl;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cin.clear();
continue;
}Ändert aber leider nichts.... Kann mir wer weiterhelfen ?
Grüße Smuji
-
Wir brauchen ein kompilierbares Programm, am besten schreibst du in Kommentaren dazu was du wo eingibst. Und schreib am Ende dazu was du erwartest. Achja und Code-Tags benutzen, das ist der fette C++ Button unterm Nachrichtentext-Fenster.
Du hättest auch deinen alten Thread beibehalten können. Keiner sucht sich Infos zu diesem Thread aus einem alten Thread. Es ist, als hätte es den alten Thread nie gegeben...
-
Mach es doch mit einer switch/case abfrage.
switch(auswahl) { // Buchstaben als default default: cout << "Falscher Wert..." << endl; break; }
Gibt bestimmt elegantere Lösungen, weiß ja nicht wie komplex dein gesamtes Projekt ist. Aber für eine Art Menü sollte das reichen.
Gruß
EDIT:
Bei dir fehlt das int beiint main() {