C++ if Abfrage
-
Wer kann mir bitte helfen?
Bei der Eingabe einer Zahl unter 10 (<< cin Zahl) bekomme ich kein Ergenis!
Bei einer Zahl über 10 klappt es.
Woran liegt das?Besten Dank schon einmal für Eure Hilfe!
Soelg#include <iostream>
#include <stdio.h>using namespace std;
int main()
{
int Zahl;cout <<"Bitte geben Sie eine Zahl ein!: ";
getchar();
cin >> Zahl;
getchar();
if (Zahl <50 )
{
cout << "Zahl ist kleiner als 50!\n";
}
getchar();
return 0;}
-
lass mal das getchar() weg.
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
volkard schrieb:
lass mal das getchar() weg.

Man darf nie unformatierte und formatierte Extraktion mischen.
-
Woran liegt das?
Ganz offensichtlich daran, dass nur ein Zeichen eingegeben wird und dadurch
std::cinnur an das newline gelangt. Dadurch kann keine Zahl extrahiert werden, undZahlbleibt unverändert dem Zufall überlassen.Obwohl, ich denke,
num_getkönnte da auch 0 zurückgeben. Suche mal den Standard auf.
-
Sone schrieb:
Obwohl, ich denke,
num_getkönnte da auch 0 zurückgeben. Suche mal den Standard auf.Jo, ist tatsächlich definiert:
<a href= schrieb:
N3337 §22.4.2.1.2 Stage 3">The numeric value to be stored can be one of:
- zero, if the conversion function fails to convert the entire field. ios_base::failbit is assigned
to err. - ...
- zero, if the conversion function fails to convert the entire field. ios_base::failbit is assigned