Problème codes ASCI

Signaler
Messages postés
2
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
29 mars 2007
-
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
Bonjour,

j'ai un petit soucis : je souhaite effectuer une "instruction" particulière en fonction de la touche pressée au clavier.

J'ai donc créé ceci :
...
int touche;
touche=getch();
switch((int)touche) //j'ai été obligé d'ajouter un cast sinon ça ne fonctionne pas.
{
case 97:printf("touche a");break;      //ça fonctionne
case 27:printf("ECHAP");break;      //ça fonctionne
....
case 75:printf("touche gauche");break; //le code ASCI 75 n'est pas la touche gauche clavier
default:printf("default");
}
...

Je voudrais savoir s' il y a un code ASCI pour les touche gauche,droite,haut,bas et comment résoudre ce problème.
(J'ai créer un prgm pour me renvoyer les codes ASCI en fonction des touches tapées mais j'obtien 2 codes le premier étant toujours 224.)

merci d'avance

2 réponses

Messages postés
2
Date d'inscription
jeudi 29 mars 2007
Statut
Membre
Dernière intervention
29 mars 2007

Bon finalement après quelques recherches j'ai pu trouver une solution à mon problème.
J'ai appris ceci :

Les touches F1 à F12 et les touches fléchées sont des touches qui, lorsque l'on appuie dessus, renvoient 2 codes l'un à la suite de l'autre. Ce sont ce que l'on appelle des touches étendues.
Pour gérer ce type de touches, il faut lire un premier caractère du buffer clavier, détecter qu'il s'agit d'un code de touche étendue, et relire un second caractère pour identifier la touche. Ce premier 'caractère' lu dépends du système et peut également varier selon les touches étendues (généralement il a la valeur 0 ou 224)
A noter que les codes étendus, c'est-à-dire celui qui vient en seconde position, est différent suivant les plate-formes.

Si toutefois vous avez des conseils à me donner n'hésitez pas.

merci
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
Si t'es sous windows il y a moyen de recuperer l'etat des touches du
clavier à l'aide des APIs comme GetKeyboardState ou GetKeyState

<hr size="2" width="100%" />Trafic web gratuit!!!