Variable als Zahl deklarieren
-
Hallo zusammen, habe folgendes Problem:
wie kann ich realisieren, dass wenn ich für a oder b keine Zahl eingebe (Buchstaben oder Zeichen), eine Fehlermeldung ausgegeben und zu einer erneuten Eingabe aufgefordert wird.cout <<"Bitte den Wert fuer a eingeben:"; cin >> (a); //Einlesen von a cout <<"Bitte den Wert fuer b eingeben:"; cin >> (b); //Einlesen von b c = a*b; cout <<"c ist:"<<c;ach ja a,b,c sind als float deklariert
Gruß Marwin
-
Hallo,
z.B. so:cout <<"Bitte den Wert fuer a eingeben: "; float a, b; while ( !(cin >> a) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } cout <<"Bitte den Wert fuer b eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); }
-
Danke für die schnelle Hilfe.

Marwin
-
HumeSikkins schrieb:
Hallo,
z.B. so:cout <<"Bitte den Wert fuer a eingeben: "; float a, b; while ( !(cin >> a) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } cout <<"Bitte den Wert fuer b eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); }Sieht ja sehr nach Copy-Und-Paste-Code aus.
-
OberLehrer schrieb:
HumeSikkins schrieb:
Hallo,
z.B. so:cout <<"Bitte den Wert fuer a eingeben: "; float a, b; while ( !(cin >> a) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } cout <<"Bitte den Wert fuer b eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); }Sieht ja sehr nach Copy-Und-Paste-Code aus.
eben
void leseFloat( float& b, const char* bez ) { cout <<"Bitte den Wert fuer " << bez << " eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } } float a; leseFloat( a, "a" );
-
OberProfessor schrieb:
OberLehrer schrieb:
HumeSikkins schrieb:
Hallo,
z.B. so:cout <<"Bitte den Wert fuer a eingeben: "; float a, b; while ( !(cin >> a) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } cout <<"Bitte den Wert fuer b eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); }Sieht ja sehr nach Copy-Und-Paste-Code aus.
So:
void leseFloat( float& b, const char* bez ) { cout <<"Bitte den Wert fuer " << bez << " eingeben: "; while ( !(cin >> b) ) { cout << "Hallo? Das ist doch keine Zahl!" << endl; cin.clear(); while(cin.get() != '\n'); } } float a,b,c,d; leseFloat( a, "a" ); leseFloat( b, "b" ); leseFloat( c, "c" ); leseFloat( d, "d" );