Question sur Getch() et retour chariot

KutaJack Messages postés 1 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 22 avril 2010 - 22 avril 2010 à 13:37
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 - 24 avril 2010 à 21:54
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

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
24 avril 2010 à 21:54
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,
0