Cobinja
Lt. Junior Grade
- Registriert
- Juli 2006
- Beiträge
- 454
Moin
Ich hab mal 'ne Frage zu C++
Ich muss einen float per cin einlesen. Bisher hab ich das folgendermassen gemacht:
Da habe ich allerdings das Problem, daß mir, wenn ich z.B. "23r" eingebe, trotzdem die 23 als float zurückgegeben wird, obwohl die Eingabe nicht korrekt ist.
Wenn ich jedoch "r" eingebe, reagiert das Programm so, wie es soll, nä(h)mlich mit der Aufforderung, doch bitte eine Zahl einzugeben.
Wie kann ich solche Fehleingaben vernünftig abfangen?
Ich hab mal 'ne Frage zu C++
Ich muss einen float per cin einlesen. Bisher hab ich das folgendermassen gemacht:
Code:
float getInput(string name) {
float tmpInputFloat = 0; // temp variable for user input
do {
cout << name << ": ";
cin >> tmpInputFloat;
// empty the input buffer
getchar();
// the user didnt't enter a number greater than zero or
// didn't enter any number
if (tmpInputFloat == 0) {
cin.clear();
cin.sync();
// hint for the user
cout << "Okay, naechster Versuch...\n";
}
// repeat it until the user enters a usable number geater than zero
} while (tmpInputFloat <= 0);
return tmpInputFloat;
Wenn ich jedoch "r" eingebe, reagiert das Programm so, wie es soll, nä(h)mlich mit der Aufforderung, doch bitte eine Zahl einzugeben.
Wie kann ich solche Fehleingaben vernünftig abfangen?