Eingabe von Zahlen/Daten überprüfen?
-
Hi zusammen
Hier im Forum und bei Google fand ich nichts dazu.
Ich schreibe gerade ein Programm (Konsole :)) zur Errechnung des BMI-Werts.Jetzt wollte ich gerne die Eingaben überprüfen lassen,
z.B. 'Sind Sie männlich oder weiblich (m/w)?'Hier sollte überprüft werden ob wirklich auch 'w' oder 'm' eingeben wurde.
Wenn nicht sollte die Frage und Eingabe wiederholt werden, bis halt 'w' oder 'm'
eingeben wurde.Wie ist dies allerdings möglich, so dass bei falsch Eingabe er immer wieder zum Ausgangspunkt spring, also zur Frage.
Wollte nicht unbedingt die Frage x mal schreiben.Danke schonmal im Voraus für die Antworten
Gruss
«oMeE»
-
char input; do { std::cin >> input; } while( input != 'm' && input != 'w' );
-
Mit dem tollen Standard kannst du *während* der Eingabe leider gar nichts prüfen, da bleibt dir nur zu warten bis der User Enter gedrückt hat. Dann kannst du die Eingabe auf ihr Format prüfen und bei Bedarf den User nochmal auffordern etwas einzugeben.
Wenn du nur bestimmte Werte zulassen willst und das auch nicht anders eingegeben werden können soll dann musst du auf OS-API ausweichen. Zum Beispiel findest du in der Konsolen-FAQ eine Funktion um float-Zahlen einzulesen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39313.html
Das ist natürlich leicht umbaubar, und fällt wesentlich einfacher aus wenn nur 'w' oder 'm' als Eingabe zulässig ist
MfG SideWinder