Question sur Getch() et retour chariot

Signaler
Messages postés
1
Date d'inscription
jeudi 19 novembre 2009
Statut
Membre
Dernière intervention
22 avril 2010
-
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011
-
Bonjour

Je suis débutant en C++ et j'utilise getch() avec kbhit() suivit d'un switch pour pouvoir faire tel ou tel action en fonction de la touche appuyer :

#include <cstdlib>
#include 
#include 
#include <sstream>
#include <windows.h>
#include <conio.h>
#include <myconio.h>

#define HAUT 72
#define BAS 80
#define ENTREE 13


int main(int argc, char *argv[])
{
char car;
do{
if(kbhit())      
           {  
               car = getch();  
               switch (car)
               {
                      case HAUT : // action si appuie sur touche HAUT            
                                   break;
                                   
                      case BAS :  // action si appuie sur touche BAS
                                   break;

                      case ENTREE : //action si appuie sur touche ENTREE
                                   break;
                   
                      default :    // action en cas d'autres touches d'appuyer
               }
           }
}while (car != 'e');
}


Le problème qui se pose est que si l'utilisateur appuie sur les touches BAS ou HAUT, l'action se passe normalement.

Mais pour la touche entrée, il faut appuyer deux fois pour que l'action se passe.

Auriez vous une solution pour pouvoir faire une action au premier appuie de la touche entrée?

Merci d'avance.

1 réponse

Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Salut,
Dans ton «default», affiche l'entier qui est lu:
printf("%d ", car);
Ainsi tu sauras ce qui se passe lorsque tu appuies (la première fois) sur entrée.

Qu'est-ce que cela t'apprend?
Bonne prog,