cin neu aufsetzen?



  • Hi,

    ich versuche Folgendes mit C++ zu machen, scheitere jedoch an meinen mangelnden Faehigkeiten: 😞
    Ich moechte eine einfache Zahl einlesen (it's dead easy). Ich verwende cin. Soweit klappt das auch, aber sobald der User was anderes als ne Zahl eingibt geht alles den Bach runter...

    float fFrequency;
    cout << "You chose FM, please enter a frequency. The band goes from 88 to 108 MHz" << endl;
    cin >> fFrequency; //prompt the first time for a frequency
    while (fFrequency <= 88 || fFrequency >= 108) //if the frequency is not in range, ask again until a valid value is entered
    {
    cout << endl << "The value you entered is out of range. Please enter a value between 88 and 108." << endl;
    cin >> fFrequency;
    }
    

    Das resultiert in einer Endlosschleife wenn keine Zahl eingegeben wird.

    ich hab jetzt ne Weile Buecher gewaelzt und gegooglet. Ich hab was ueber cin.fail() gelesen, und wie ich das mit cin.clear() wieder zuruecksetzen kann. Aber das hilft mir nicht weiter, weil der Buchstabe dann ja immernoch im inputstream steht 😡
    was ich braeuchte ist so ne Art
    cin.HauDenGanzenScheissInsNirwanaUndFangVonVorneAn( 😡 )

    Hoert sich eigentlich echt simpel an, aber ich verzweifel hier 😞



  • cin.clear();
    cin.ignore(cin.rdbuf()->in_avail());
    

    Gruß





  • Super, vielen Dank fuer die schnelle Hilfe 👍


Anmelden zum Antworten