Ü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?
    Mit

    if((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!!!


Anmelden zum Antworten