Prüfen, ob Eingabe Int ist

Hi,
danke hab das jetzt gleich mal ausprobiert doch irgendwie springt er in eine Endlosschleife wenn ich Buchstaben statt zahlen eingebe... Dann gibt er mir x mal die Fehlermeldung aus jedoch komme ich nichtmehr zur eingabe... was nun?
 
Hi,
danke hab das jetzt gleich mal ausprobiert doch irgendwie springt er in eine Endlosschleife wenn ich Buchstaben statt zahlen eingebe... Dann gibt er mir x mal die Fehlermeldung aus jedoch komme ich nichtmehr zur eingabe... was nun?
Du hast natürlich Recht. Die Eingabe steht ja immer noch im Eingabepuffer und muß erst noch entfernt werden:
C++:
#include <limits>

...
} else if (!cin.bad() && !cin.eof()) {
    cerr << "Sie haben eine ungueltige Zahl eingegeben! Versuchen Sie es erneut.\n";
    cin.clear(); // Fehlerzustand zurücksetzen

    // fehlerhafte Eingabe entfernen
    cin.ignore(std::numeric_limits<streamsize>::max(),'\n');    
}
Sorry, hatte ich vergessen :(

Gruß
 

Neue Beiträge

Zurück