Controle chiffre en C++

Résolu
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009 - 27 avril 2008 à 12:33
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009 - 27 avril 2008 à 17:02
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

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
27 avril 2008 à 15:31
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++ (@++)<!--
3
cs_jfrancois Messages postés 482 Date d'inscription vendredi 26 août 2005 Statut Membre Dernière intervention 5 décembre 2009 2
27 avril 2008 à 12:50
Bonjour,

"cote" est déclaré comment ?

Jean-François
0
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
27 avril 2008 à 13:24
"cote" est déclaré en entier (int) une classe.
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
27 avril 2008 à 14:54
tu peux utiliser cin.fail().
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
27 avril 2008 à 16:05
Merci
Ca fonctionne nickel
Mais en fait c'est quoi la fonction de ces 2 instructions?
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
27 avril 2008 à 16:37
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++ (@++)<!--
0
cs_Marcel62 Messages postés 14 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 6 juillet 2009
27 avril 2008 à 17:02
Merci
0
Rejoignez-nous