Warum zeigt der Computer bei Eingabe mehrerer Buchstaben "wie lang ist die Straße in Metern?" Und "Bitte geben Sie eine Ganzzahl ein, die zwischen 0 und 250 liegt." mehr als einmalWarum ist diese Schleife mehr als einmal, wenn Buchstaben eingegeben werden?
Zum Beispiel, wenn ich das eingeben „abc“ die Konsole angezeigt werden:
, wie lange ist die Straße in Metern
abc
Bitte geben Sie eine ganze Zahl zwischen 0 und 250. , wie lange ist die Straße in Metern
einen Integer Bitte geben Sie die in Metern zwischen 0 und 250. , wie lange ist die Straße
istBitte geben Sie eine ganze Zahl zwischen 0 und 250. wie lange ist der Weg in Metern
while (!valid)
{
cout << "how long is the road in meters " << endl;
cin >> road;
valid = true;
if ((cin.fail()) || ((road > 250) || (road < 0)))
{
cin.clear();
cin.ignore();
cout << "Please enter an Integer which is between 0 and 250." << endl;
valid = false;
}
}
'numeric_limits :: max() 'wäre eine bessere Wette als eine seltsame Konstante wie' 1000'. Nur weil es kein größeres Programm ist, heißt das nicht, dass wir es nicht anständig schreiben sollten. –
mszymborski
Ja, das wäre genauer. –