Problème codes ASCI

master210687 Messages postés 2 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 29 mars 2007 - 29 mars 2007 à 13:15
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 - 1 avril 2007 à 17:17
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

master210687 Messages postés 2 Date d'inscription jeudi 29 mars 2007 Statut Membre Dernière intervention 29 mars 2007
29 mars 2007 à 13:26
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
0
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
1 avril 2007 à 17:17
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!!!
0
Rejoignez-nous