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 bei

    int main() {
    

Anmelden zum Antworten