Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : ein String bzw. ein int überprüfen



jancarsten
24-10-2005, 17:10
HI!

Habe schon lange nix mehr mit c++ gemacht. Folgendes Problem: gegeben sind die Variablen "std::string foo;" und "int bar;" diese Variablen werden über eine eine Userabfrage gefühlt. So wie überprüfe ich jetzt, dass der User auch gültige Werte eingegeben hat? Als int sind nur zahlen erlaubt bsp. 12345,32135,245234 so wie prüfe ich jetzt den int wert den der User eingegben hat ab? In C++ gibt ja so schöne funktionen für alles ;)


mfg janosch

locus vivendi
24-10-2005, 18:00
So wie überprüfe ich jetzt, dass der User auch gültige Werte eingegeben hat?
Bitte präzisieren. Wenn du "int x; std::cin >> x;" machst, dann ist bereits sichergestellt, dass ein Integer eingelesen wird, weil sonst der Stream in einen Fehlerzustand überführt wird (und das kannst du testen). Insofern verstehe ich nicht ganz, was du benötigst.

jancarsten
24-10-2005, 18:55
HI!

Also das Problem ist folgendes: Wenn der User aufgefordert wird zum Bsp. eine PLZ einzugeben (die variable ist int) und der User gibt anstelle einer Zahl Buchstaben ein schmiert mein Programm ab. Das will ich verhindern.

mfg janosch

locus vivendi
24-10-2005, 21:24
Wie gesagt, wenn man mit den Standard-Operatoren aus einem Stream Elemente extrahiert, dann ist hinterher entweder ein passendes (gültiges) Element gelesen wurden, oder der Zustand des Streams ist nicht "good". Dieses kannst du über die Methode "fail()" des Streams testen. Das müsste eigentlich reichen.