seltsames verhalten bei einlesen einer zahl
-
hallo,
ich möchte mit diesem code eine zahl einlesen:int Zahl = -1; do { printf("\n\nBitte gebe eine zahl ein: "); fflush(stdin); std::cin >> Zahl; } while ( (Zahl < 0) || (isdigit(Zahl)) );wenn die zahl kleiner 0 ist, oder keine zahl eingegeben wurde soll weiter gefragt werden. nur leider wird so wenn ich z.b. einen buchstaben eingebe der code in meiner schleife nicht ausgeführt.
und es rennt endlos: "Bitte gebe eine zahl ein:" über den bildschirm
was mache ich falsch?
-
hmm,
das mit dem isdigit[i] überzeugt mich gerade auch nicht so 100%hab die letzte zeile erstmal auf
while ( (Zahl < 0) );abgeändert.
das macht es erstmal auch einfacher
-
nächster gedanke:
fflush(stdin)[i] muss weg. soll man ja eh nicht verwenden.
allerdings ändert auch ein
cin.clear()leider nichts
-
problem ist mittlerweile gelöst!
hab ein super minitutorial im netz gefunden.
allerdings leider nur noch im google-cache, weil die richtige seite momentan down ist. weiss also nicht wie lange der link hier funktionieren wird.aber das oder so ein ähnlicher artikel wär evtl. was für die FAQ!!??