Controle chiffre en C++

Résolu
Signaler
Messages postés
14
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
6 juillet 2009
-
Messages postés
14
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
6 juillet 2009
-
Voila mon problème:
Mon programme ne doit accepter que les nombre entre 0 et 1000, mais lorsque je saisis une lettre il plante.
Que doit je modifier pour le faire fonctionner?
merci d'avance
 
cout << "Veuillez saisir la longueur des cotes\n";
    do
    {        
        cin >> cote;

        if (cote <=0 || cote > 1000)
        {
            cout<<"Veuillez saisir une valeur comprise entre 1 et 1000\n\n";
        }

    }while (cote <=0 || cote > 1000);

7 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
cout << "Veuillez saisir la longueur des cotes\n";
    do
    {        
        cin >> cote;

        if (cote <= 0 || cote > 1000)
        {
            cout<<"Veuillez saisir une valeur comprise entre 1 et 1000\n\n";
        }

    cin.clear(); cin.ignore(1000, '\n');
    }while (cote < =0 || cote > 1000);

Ça fonctionne comme ça ?

C++ (@++)<!--
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
Bonjour,

"cote" est déclaré comment ?

Jean-François
Messages postés
14
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
6 juillet 2009

"cote" est déclaré en entier (int) une classe.
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
tu peux utiliser cin.fail().
Messages postés
14
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
6 juillet 2009

Merci
Ca fonctionne nickel
Mais en fait c'est quoi la fonction de ces 2 instructions?
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
D'après ce que j'en ai compris:

clear() permet faire un reset sur l'état du stream
ignore(x, y) permet de retirer du stream le caractère y sur x caractères

C++ (@++)<!--
Messages postés
14
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
6 juillet 2009

Merci