C++ Hilfe. Sollen nur Zahlen erlaunt werdem beim Eintippen
-
Hi,
ich bin neu hier und hab direkt eine Frage.
Also, gibt es einen Befehl, der nur Zahlen beim Eintippen erlaubt.
Hier mal ein Beispiel:
Bitte 1. Zahl eingeben:
Bitte 2. Zahl eingeben:Und da sollen nur Zahlen erlaubt werden. Ich möchte jetzt keine super lange if-Abfrage schreiben. Gibt es da nichts was mir weiterhelfen könnte?
Vielen Dank im Voraus
-
nimm IO-Streams und gib lass deine Werte über >> einlesen - wenn der Nutzer was falsches eingegeben hat, setzt der Stream ein Fehlerflag, das du abfragen kannst:
cout<<"Bitte Zahl eingeben\n"; while(true) { cin>>wert; if(!cin) { cout<<"Sie sollen eine ZAHL eingeben"; cin.clear(); cin.ignore(100); } else break; }
-
dieses ! vor cin heißt doch, wenn nichts in cin steh oder?
Also ich hab noch nicht ganz gecheckt, wo jetzt gesagt wird, dass keine Buchstaben erlaubt werden.
-
Du kannst es nicht verbieten, aber du kannst es danach überprüfen.
mit "!cin" überprüfst du ob der Stream noch ok ist, oder ob ein Fehler aufgetreten ist (z.B. falls man in int einliest aber Buchstaben eingegeben werden).
-
btw mit do ... while gehts schöner
int in; do { cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin >> in; } while(!cin);
-
Mhm, wenn ich das alleine ohne irgendeinen anderen Code schreibe funktioniert das. Aber wenn ich das in meinen Code einfüge sagt er, dass es einen Fehler mit avail gibt.
Hab schon die Variable in geändert zu Zahl1 (das ist mein Varname) aber gibt trotzdem den Fehler aus.
-
Code + Fehlermeldung, wir sind keine Hellseher. Bitte folgende Umleitung beachten: DENKEN -> POSTEN!