Eingabemaske
-
Hallo,
ich brauche für ein Programm die Bedingung, dass man nur 2-stellige Zahlen eingeben kann! Wenn die Zahl nicht 2-stellig ist, muss eine Fehlermeldung ausgegeben werden!
Wie ist das in C++ zu realisieren??MfG
saly
-
Halloo
//----- snip ----- short zahl; cin>>zahl; if(zahl>=100) cout<<"FALSCH !!!!!"<<endl; //----- snap -----
Auf die anderen möglichen falschen Benutzereingaben wird da natürlich nicht reagiert.
-
Danke, aber ich habe etwas vergessen zu erwähnen:
Wenn ich z.B. "1" eingebe, muss auch eine Fehlermeldung erscheinen! In diesem Fall müsste man "01" eingeben! Man kann also nicht sagen, dass die Zahl nicht größer als 99 sein darf! Sorry, war mein Fehler!!
Hat jemand eine Idee zu diesem Fall??MfG
saly
-
Lies die Zahl doch als Zeichenkette ein, und überprüfe aus wievielen Zeichen diese besteht.
Irgendwie sowas z.B.:
string input; cin >> input; if(input.size() != 2) { cout << "Fehler!" << endl; return 1; } stringstream sstream(input); int val; sstream >> val; cout << val << endl;
-
Ja damit wäre dieses Problem zwar beseitigt, aber es ergibt sich ein neues:
Ich muss mit den Werten rechnen können, es müsste also schon ein int bzw. ein short sein! Mit dem string funktioniert das leider nicht so ganz...MfG
saly
-
std::string mynumber= 4711; int number=atoi(mynumber.c_str());
-
Ok, es geht! Hatte etwas nicht beachtet, jetzt funktioniert alles! Danke
MfG
saly
-
Ich frage mich gerade wieso der Benutzer nicht "1" eingeben darf, wenn du die Zahl
sowieso gleich in nen Integer umwandelst, wo die führende 0 eh nicht gebraucht wird.
-
Na das ist ganz einfach!! Es handelt sich um eine Zeit-Eingabe hh:mm! Und dafür brauche ich die Bedingung, dass man als Minuten z.B. 01 eingeben muss! Eine Eingabe wie 20:1 Uhr wird dadurch verhindert! Und es sollte ein integer sein, damit die Minuten nicht keiner als 0 und nicht großer als 59 sein können!
Gruß
saly
-
dafür würd aber auch nen unsgined char reichen der geht von 0-256