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 :

Attendre l'appui sur la touche entrer


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Par défaut Attendre l'appui sur la touche entrer
    Bonjour,

    Je viens vous voir car j'ai besoin de votre aide en C++. Au lancement d'un programme en C++, je souheterais afficher un message de bienvenue, puis attendre que l'utilisateur appuie sur entrer pour continuer.. mais je sais pas comment faire! je pense qu'il faut récupérer un caractère vide avec "cin" mais je ne vois pas comment faire..

    Si quelqu'un pouvait m'aider

    Merci !

    Mon code qui ne fonctionne pas..ça pourra surement vous aider a comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	cout << "Message de bienvenue" << endl;
     
    	char var=0;
     
           //tant que l'utilisateur n'a pas taper sur entrer on continue..
    	while(var == 0)
    	{
    	  cout << endl << "appuyer sur entrer pour continuer.." << endl;
    	  cin >> var;
    	}
    	// on Crée le simulateur
       	Simulateur sim;
     
    	// on lance le simulateur
       	sim.run();

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Par défaut
    Ca affichera un message dans la console "Pour poursuivre l'exécution du programme veuillez appuyer sur une touche" (ou un truc dans le genre).
    C'est pas spécifique à la touche Entrée par contre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 110
    Par défaut
    Pour vérifier si c'est la touche "entrer" ou autre chose, il faut que tu regarde coté windows, tu trouvera suremment un Handle spécifique à cette touche.

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par Captain_JS Voir le message
    Ca affichera un message dans la console "Pour poursuivre l'exécution du programme veuillez appuyer sur une touche" (ou un truc dans le genre).
    C'est pas spécifique à la touche Entrée par contre.
    Absolument pas portable. Au moins, utiliser std::getchar définie dans <cstdio>
    (A noter que l'entré doit se finir par un appui sur [Enter])
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Par défaut
    Merci beaucoup tout le monde pour vos réponses

    la solution std::getchar(); fonctionne parfaitement. Si ça interesse quelqu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <cstdio>
           cout << "message de bienvenue" << endl << "appuyer sur entrer pour continuer" << endl;
     
    	// on attend l'appui sur la touche entrer
    	std::getchar();
     
    	// on Crée le simulateur
       	Simulateur sim;
     
    	// on lance le simulateur
       	sim.run();

  6. #6
    Membre éclairé Avatar de cynique
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 60
    Par défaut
    Citation Envoyé par rom56 Voir le message
    Merci beaucoup tout le monde pour vos réponses

    la solution std::getchar(); fonctionne parfaitement. Si ça interesse quelqu'un
    Je préfère getline():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::string dummy;
     
    std::getline( std::cin, dummy );
    Par cette méthode, le code attend la fin de la ligne. Si je tappe "abc" et puis j'appuie sur Enter, la getline() mange toute la ligne. getchar() ne mange que la "a"...

  7. #7
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Citation Envoyé par cynique Voir le message
    Je préfère getline():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    std::string dummy;
     
    std::getline( std::cin, dummy );
    Par cette méthode, le code attend la fin de la ligne. Si je tappe "abc" et puis j'appuie sur Enter, la getline() mange toute la ligne. getchar() ne mange que la "a"...
    std::getline est très bien quand on veut récupérer une chaine avec des espace depuis un flux standard. Là, il veut juste attendre l'appuis d'une touche, il s'en fiche des touches préssées.

    Attention, j'ai oublié de le dire, mais il faut penser à purger std::cin après (de mémoire, il ya a une entré dans la FAQ)
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

Discussions similaires

  1. [Javascript] appui sur la touche entrée dans une textbox
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/01/2006, 11h19
  2. attraper le click sur la touche entrer
    Par linux dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 02/11/2005, 15h18
  3. Réponses: 3
    Dernier message: 24/01/2005, 11h57
  4. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 12h51
  5. Détecter l'appui sur la touche de fonction F2
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/06/2003, 11h07

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