cin - Eingabe überprüfen
-
Hier hab ich schon mal einen Ansatz, mit dem ich überprüfen kann ob Zeichen oder Zahlen eingegeben worden sind (#;*;a-z....etc.).
Doch wie kann ich nun zwischen Ganzzahl und Fließkommzahl unterschieden?
Ich vermute mal dass er bei Kommazahlen einfach nach dem "." abschniedet und somit eine Ganzzahl daraus macht. Und sie somit auch durch mein Kontrollsystem durchkommt. Wie kann ich dass ändern?#include <iostream> using namespace std; int main() { bool end=false; do { int a; cin >> a; if(cin) { cout << "RICHTIGE EINGABE\n"; end=true; } else { cout << "FALSCHE EINGABE\n"; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); end=false; } }while(!end); return 0; }MfG
Stromberg
-
Indem du in eine float Variable einliest und danach testest ob diese Zahl Nachkommastellen hat.
Sowas wiefloat a; cin >> a; if(cin && int(a) <= a) {Da kommt dann allerdings auch eine Zahl wie 1.000 durch.
Warum willst du das denn so genau unterscheiden?
-
Mh ka..ich wollts eigentlich nur aus reinem Interesse wissen, wie weit man gehen kann

Aber so wichtig is es ja auch nicht. So reicht mir des auch schon.MfG
Stromberg