IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment v�rifier les valeurs saisies avec cin?


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par d�faut Comment v�rifier les valeurs saisies avec cin?
    Bonjour,

    je d�sire v�rifier les valeurs saisies avec cin pour m'assurer que ce sont des nombres entiers.
    Quelle chance! c'est exactement le sujet de la F.A.Q:
    Comment v�rifier les valeurs saisies avec cin?
    Malheureusement j'ai un probl�me avec la ligne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cin.ignore( numeric_limits<streamsize>::max(), '\n' ); // supprimer la ligne erronée dans le buffer
    j'ai un warning:
    not enough actual parameter for macro 'max'
    suivi d'erreurs:
    '(': illegal token on right side of '::'
    Quelqu'un peut-il m'aider? merci
    (P.S: j'utilise Microsoft Visual 2005)

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    • Tu inclues un header Windows ? rajoute un #define NOMINMAX avant toute inclusion.
    • Sinon, fais juste un #undef max apr�s toutes les inclusions de header.

    Explications:
    Il y a un truc dans les headers de Windows qui d�finit max comme une macro prenant deux param�tres.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre �clair� Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par d�faut


    Entre-temps, j'ai opt� pour une autre solution qui fonctionne aussi. J'ai remplac�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    if(! (cin >> nb))
    {
    cout << "input error" << endl;
    cin.clear();
    cin.ignore( bla bla bla);
    }
    par:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    string s;
    getline(cin, s);
    istringstream iss(s.c_str());
    if(! (iss >> nb))
    {
    cout << "input error" << endl;
    }
    Et �a fonctionne correctement. Mais je suppose que j'y perds en process? (creation d'un objet istringstream...)
    Je vais essayer ta solution plutot.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 27/11/2008, 15h19
  2. R�ponses: 3
    Dernier message: 07/10/2008, 11h13
  3. R�ponses: 8
    Dernier message: 16/05/2007, 16h27
  4. [C#][WinForms][DataGrid]V�rifier les valeurs saisies
    Par loverdose dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 15/12/2005, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo