wie kann ich prüfen, ob überhaupt eine zahl eingegeben wurde
-
hi @ all!
ich hab ein kl. prog geschrieben, das eine zufallszahl generiert! danach muss man eine zahl eingeben. is die zahl zu klein oder zu groß kommt eine fehlermeldung und man muss erneut eine zahl eingeben!
jetzt würde mich interessieren, wie man prüft, ob überhaupt eine zahl eingegeben wurde und nicht ein buchstabe oder so! wird wohl mit der if abfrage gehen! ich habe es so:if (geraten != ) { cout << "Das ist keine Zahl! Bitte eine Zahl eingeben!" << endl; }jetzt weiß ich aber nicht, was nach "!=" kommt! kann mir da wer helfen! da soll ja geprüft werden, ob es eine zahl ist oder ein buchstabe!
mfg sepple
-
tja da gibts denk ich mal ne menge moeglichkeiten, das könnt hier klappen
void Start()
{
cout << "Zahl eingeben"; //dann folgt der rest...
}// später kommt das hier
void GetResults()
{
default : cout << "Das is keine Zahl";
Start();
break;
}das müsst so funzen, probiers mal...
mfg julian
-
//edit
-
//für INT_MAX: #include <climits> //... int x; while (!(cin>>x)){ cin.clear(); cin.ignore(INT_MAX, '\n'); }
-
hi,
wofür ist das clear() gut, wenn er eh alles ignore()-iert?
-
Fr4gger schrieb:
hi,
wofür ist das clear() gut, wenn er eh alles ignore()-iert?
Wenn ein zB fälschlicherweise ein String eingegeben wird der nciht nach int konvertiert werden kann setzt der Stream ein Failbit. Danach werden keine weiteren Einleseoperationen mehr durchgeführt (ignorieren hin oder her). Mit clear() wird dieses Bit wieder zurückgesetzt.
MfG SideWinder