Überprüfung von Variablen auf Gültigkeit
-
Hallo,
ich möchte in meinem Programm alle Input-Werte auf Gültig prüfen.
So muss ich zum Beispiel überprüfen ob char im bereich 0 bis 255 liegt.
Wie lässt sich das am effektivsten überprüfen?
Mitif((char >= 0) && (char <= 255)) { do...}Oder gibt es hierfür eine bessere Methode?
Wie muss ich dann float überprüfen? Welche Wertebereiche hat float?
-
Ein (unsigned) char liegt normalerweise im Bereich 0..255 (außer du hast ein Exoten-System, bei dem ein Byte mehr als 8 Bit hat - oder bei deinem System sind char's vorzeichenbehaftet). Also was genau willst du da eigentlich überprüfen?
Wenn du feststellen willst, ob eine String-Eingabe als float/int/whatever erkannt werden kann, wandel sie einfach um und fang mögliche Umwandlungsfehler ab, z.B:
char* test = ...; char* ende; double val = strtod(test,&ende); if(*ende !='\0') cout<<"Fehler"; //oder string test = ...; ostringstream str(test); double val; str>>val; if(!str) cout<<"Fehler";
-
string test = ...; ostringstream str(test); double val; str>>val; if(!str) cout<<"Fehler";Die variable test ist der String den ich im Editfeld eingegeben habe?
Was macht ostringstream str(test);?
Was macht str>>val;?
-
maRKus23 schrieb:
Die variable test ist der String den ich im Editfeld eingegeben habe?
Ja
Was macht ostringstream str(test);?
Initialisiert einen Stringstream mit dem Inhalt deines Eingabestrings.
Was macht str>>val;?
Liest aus dem Stream in die double-Variable 'val'.
(für ausführlichere Erkärungen empfehle ich einen Blick in die C++ FAQ - "Einmal String nach Zahl und zurück")
-
Ahja danke!!!