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 :

purger le buffer clavier


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut purger le buffer clavier
    bonjour,

    lorsque j'utilise ce code présent dans la FAQ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cin.ignore( std::numeric_limits<streamsize>::max(), '\n' );
    j'ai un paquet d'erreur qui arrivent...


    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(601) : warning C4003: not enough actual parameters for macro 'max'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(601) : error C2589: '(' : illegal token on right side of '::'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(601) : error C2143: syntax error : missing ')' before '::'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(601) : error C2059: syntax error : ')'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(603) : warning C4003: not enough actual parameters for macro 'max'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(603) : error C2589: '(' : illegal token on right side of '::'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(603) : error C2143: syntax error : missing ')' before '::'
    c:\Documents and Settings\adrien\Mes documents\Visual Studio Projects\Pti_hotel\Hotel.cpp(603) : error C2059: syntax error : ')'
    A quoi cela peut être du??

    J'utilise VC++ 2005.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ce sont les macros Windows qui viennent mettre le boxon.

    Un petit
    Après l'inclusion de <windows.h>

    Ou un
    Avant l'inclusion de <windows.h>, devrait faire l'affaire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut
    Ca n'était écrit nulle part dans la FAQ qu'il fallait inclure windows.h...

    Maintenant ça fonctionne!

    Thx

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Remedy
    Ca n'était écrit nulle part dans la FAQ qu'il fallait inclure windows.h...
    Il ne faut pas ! J'ai supposé que ta macro max provenait de windows.h, mais si tu ne l'inclues pas alors elle vient peut-être d'ailleurs.

    Quoiqu'il en soit tu as une macro nommée max qui fout le boxon, il faut la trouver pour régler ton problème.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut
    lol je croyais

    Bon j'ai enlevé le windows.h puisqu'apparement il ne sert à rien et j'ai laissé le #define NOMINMAX avant mes includes en haut... et ca fonctionne


    Encore merci

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Remedy
    Bon j'ai enlevé le windows.h puisqu'apparement il ne sert à rien et j'ai laissé le #define NOMINMAX avant mes includes en haut... et ca fonctionne
    Ben si tu n'inclues pas <windows.h>, la macro NOMINMAX ne sert à rien

    En gros dans windows.h tu as un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifndef NOMINMAX
        #define min(a, b) ...
        #define max(a, b) ...
    #endif

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut
    ben pourtant si j'enlève le define nominmax j'ai des erreurs... alors que je n'ai pas inclus windows.h...

    voici le début de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #define NOMINMAX
    #include <sstream>
    #include<limits>
    #include<conio.h>
    #include<iostream>
    //#include<string> 
    using namespace std;
    #import "C:/Program Files/Fichiers communs/System/ado/msado15.dll" \
    no_namespace rename("EOF", "EndOfFile")
    D'ailleurs, une chose qui me semble bizarre, j'utilise la fonction getline() dans mon code et celle ci est normalement issue de string.h non? mais lorsque j'enleve l'include<string> ca fonctionne quand même...

  8. #8
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Celà doit venir du <conio.h> peut-être, pourtant chez moi il n'y à aucune référence à <windows.h>...

    D'ailleurs, une chose qui me semble bizarre, j'utilise la fonction getline() dans mon code et celle ci est normalement issue de string.h non?
    Normal, en incluant <iostream> tu inclues tout plein d'autres en-tête, dont celui pour les std::string (<string, pas <string.h>).

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Par défaut
    ok merci pour ces réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. vider le buffer clavier
    Par Pragmateek dans le forum C
    Réponses: 31
    Dernier message: 20/06/2006, 21h33
  2. Lire buffer clavier sous DOS
    Par rjulie dans le forum C
    Réponses: 3
    Dernier message: 05/04/2006, 17h25
  3. [MFC] Buffer clavier
    Par Marthym dans le forum MFC
    Réponses: 4
    Dernier message: 16/11/2005, 09h51
  4. Le buffer clavier avec cin, et getch()
    Par Info420 dans le forum SL & STL
    Réponses: 1
    Dernier message: 06/12/2004, 12h45

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