Fehleingaben bei c++ mit while Schleife abfangen.



  • Ich habe ein Programm geschrieben, dass ne zahl zwischen 1 und 100 erraten kann.
    Bloß scheiter ich an dem Fehlerabfang wenn z.B. einer nen Buchstaben eingibt.
    Die Prämisse ist, dass wir es mit einer while schleife machen sollen, aber wenn ich es mit while(cin.fail()) probiere hängt sich das Programm bei mir auf und wenn man ne Fehleingabe macht, reagiert es danach nich mehr.
    Wär nett wenn ihr mir helfen könnt.
    greg
    #include<iostream>

    using namespace std;

    int main() {
    cout<< "Denken sie sich eine Zahl zwischen 1 und 100" << endl;
    int untereGrenze=0;
    int obereGrenze=100;
    int Mittelwert=50;
    int auswahl;
    while (untereGrenze!=obereGrenze-1)
    { Mittelwert=(untereGrenze+obereGrenze)/2;

    cout<< "Ist ihre Zahl groesser als " << Mittelwert << " geben sie 1 ein ansonsten 2 ." << endl;
    cin>> auswahl;

    while (cin.fail())
    {cout<< "Bitte eine Zahl" << endl;
    cin.clear();
    cin.ignore(256,'n');
    cin>> auswahl;} // Hier weiss ich nich wie ich das schreiben soll.

    if (auswahl==1)
    { untereGrenze=Mittelwert; }
    else
    obereGrenze=Mittelwert;
    }

    cout<< "Ist ihre Zahl " << Mittelwert << "?" << endl;
    system ("pause");
    return 0;

    }



  • ersetze cin.ignore(256,'n'); durch cin.ignore(256,'\n');

    PS: Und verwende das nächste mal, wenn du Code postest, bitte die C/C++ Tags (unter den Smilies).



  • Dankeschön funtzt jetzt


Anmelden zum Antworten