Les flèches en ASCII

mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004 - 3 oct. 2004 à 13:53
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 8 oct. 2004 à 18:46
Ben j'ai beau chercher, je n'ai pas trouver la correspondance des touches fléchées en ASCII, même avec les programmes qui donnent la correspondance des touches . Siouplé, aidez-moi !
A voir également:

25 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 14:26
Salut,
Les touches fléchées n'ont pas de codes ASCII. Pour pouvoir les utiliser il faut récupérer leurs codes SCAN. Voici un source simple montrant comment retrouver les codes SCAN des touches qui n'ont pas de codes ASCII.
http://www.cppfrance.com/forum.v2.aspx?ID=284213
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 14:32
Désolé je me suis trompé de lien. Voici le lien correct:
http://www.cppfrance.com/code.aspx?ID=26179
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 14:37
dsl sa marche pas sa se compile mais après il y a juste appuyez sur échap pour quitter et rien d'autre.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 14:44
Tu dois appuyer sur une touche pour voir son code apparaitre. Tu tapes par exemple une touche fléchée puis son code s'affiche à l'écran.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 14:46
Je sais bien lol mais sa ne fait absolument rien j'ai pourtant apuyer sur toutes les touches du clavier mais rien. Ps je compile sous Borland 4.02 donc je ne serai pas étonné que cela vienne de là.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 15:01
Normalement cà devrait marcher avec tous les compilateurs de Borland. Tu peux tester la valeur de retour de la fonction getch(), si c'est 0 (ou 224) alors c'est une touche non ASCII. On récupère son code SCAN en appelant une 2eme fois getch(). Tu travailles sur quel système d'exploitation? Quel Windows?
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 15:03
Windows XP
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 15:09
et les touches F1-F12?
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 15:13
Marchent pas non plus...
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 15:17
C'est bizarre, tu peux tracer le programme (debug) en l'exécutant pas à pas pour voir à chaque fois la valeur retournée par getch() ?
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 15:26
je sais pas où on voit la valeur retournée dsl par contre pour tracer c'est quoi c'est step over ou trace into (ou autre chose mais je vois pas quoi) en tout cas si c'est un des deux je les ai essayés.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 15:37
Moi je travaille sur Visual C++ 6. Pour voir la valeur de "touche" on met juste le pointeur de souris dessus sans cliquer. On peut aussi ajouter le nom de la variable "touche" à la liste de la fenêtre d'affichage des contenus de variables pendant le debogage. Tu choisis "Step over" car "Trace into" entre dans le code interne de la fonction getch().
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 15:45
Nan je vois vraiment pas où est la valeur retournée mais bon tant pis peux-tu juste me dire ce que je doit mettre après case pour utiliser les fèches directionnelles et aussi entrée parce que je n'y arrive pas ... sinon je compren pas pourquoi il y a dans le programme case (##): moi je mets toujours case '#': ou case # selon le contexte.
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 15:56
heu c'est bon j'ai compris pour la touche entrée. Maintenant il ne me reste plus qu'à avoir le code des flèches (si j'ai bien compris les parenthèses sont là parce que ce n'est pas de l'ASCII ni une constante par exemple on met '1' si on veut la touche 1, 13 si on veut la touche entrée (je vien de le voir sa) et (61) si on veut je ne sais quelle touche c'est sa ?)
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
3 oct. 2004 à 16:05
A propos de "case" les parenthèses ne sont pas obligatoires. Pour utiliser les touches fléchées:
Flèche vers le HAUT : ASCII=0 (ou 224) , SCAN=72
Flèche vers le BAS : ASCII=0 (ou 224) , SCAN=80
Flèche vers la GAUCHE : ASCII=0 (ou 224) , SCAN=75
Flèche vers la DROITE : ASCII=0 (ou 224) , SCAN=77
Touche ENTREE : ASCII =13
Désolé de ne pas pouvoir rester plus longtemps. Je reviendrai dans quelques heures. Bonne programmation.
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 16:06
merci c'est super sympa je test tout de suite !!!
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
3 oct. 2004 à 16:20
Ouin j'arrive à rien lol en fait je ne sais pas vraiment quoi mettre :

a=getch();
switch (a)
{
case ????????: ....... //Je mets quoi là pour une flèche ?
........
}

M'enfin bon tant pis j'y vais je reviendrai plus tard.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
4 oct. 2004 à 11:44
gogo les msdn....

de memoire, ça serai du
VK_
voir mm du
VK_ARROW_

genre
VK_ARROW_UP

++
Magic Nono: l'informagicien! 8-)
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
4 oct. 2004 à 15:33
magic_Nono > pour utiliser les "VK_..." il faut avoir une fenêtre (ou boite de dialogue) dont la procédure gère les messages du genre "WM_KEYDOWN". Ce qui n'est pas valable pour une application console, car pas de fenêtre.
mage_des_enfers > pour récupérer le code SCAN d'une touche il faut faire 2 appels consécutifs de la fonction getch(). Normalement, cette fonction retourne le code ASCII de la touche tapée. Si cette dernière n'a pas de code ASCII alors getch() retourne 0 (ou 224). Le code SCAN reste dans le buffer clavier, il suffit de faire un second appel à getch() pour le récupérer sans avoir à taper de nouveau. Exemple:
a=getch(); // 1er appel
if (a==0 || a==224)
{
a=getch(); //2eme appel
switch(a)
{
case 72:
printf("Fleche vers le HAUT");
break;
case 80:
printf("Fleche vers le BAS");
break;
// autres cas....
}
}
0
mage_des_enfers Messages postés 24 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 25 octobre 2004
4 oct. 2004 à 19:18
Sa marche pas mais au moins je sais d'où vient l'erreur : j'ai réalisé un petit programme bidon à partir de ta réponse :

#include
#include <conio.h>

int main(void){
while (1){
int a= getch(); // 1er appel
cout<<"A remarqué l'appui d'une touche.";
if (a ==0 || a==224)
{
a=getch(); //2eme appel
switch(a)
{
case 72:
cout<<"Fleche vers le HAUT";
break;
case 80:
cout<<"Fleche vers le BAS";
break;
}
}
}
return 0;
}

Lorsque je lance, l'appui d'une touche telle que entrée fait afficher "A remarqué l'appui d'une touche." mais pas la flèche. Donc tant qu'on appui sur la flèche, le code ne dépasse pas le premier getch(). Et même si le code est pas génial génial, ben au moins je sais ce qui ne va pas.
0
Rejoignez-nous