2014-05-14 3 views
-1

J'essaie quelque chose de vraiment simple mais en même temps un peu difficile pour moi. Je veux laisser l'utilisateur insérer le numéro par l'intermédiaire de la console et si ce n'est pas le numéro à dire ce n'est pas et donner la chance d'insérer à nouveau pendant que c'est le numéro. Voici ce que je l'ai fait jusqu'à présentVérifiez si l'entrée est un nombre et si ce n'est pas encore entré

int a; 

cout<<"enter a: "; 
cin>>a; 
while (!isdigit(a)); { 
    cout << "\n ERROR, enter a number" ; 
    cin.clear(); 
    cin >> a; 
} 

system("Pause"); 
return 0; 

Maintenant, je reçois une erreur qui n'est pas numéro, mais le programme est fin. Je ne peux plus insérer et je dois recommencer.

+2

En relation http://stackoverflow.com/questions/19018294/c-to-check-if-user-input-is-a-number-not-a-character-or-a-symbol?rq=1 –

+0

Un nombre n'est pas un chiffre. Il se compose de chiffres, et parfois plus. Vous devriez regarder des questions en double. – luk32

+0

Votre vie sera plus heureuse si vous initialisez toujours des variables. –

Répondre

1

Retirez le ; de la ligne while ...

Ensuite, prendre soin de la valeur que vous testez pour beeing un chiffre - isdigit attend un caractère, alors que vous fournissez lire entrée tout l'entier (par exemple , 57204, qui n'est pas un code de caractère).