Bonsoir
Je voudrais savoir quel est le "nom" des touches Entrer Echap ainsi que celui des fleches afin que mon programme puisse les reconnaitre dans le but d'executer l'action correspondante ( en fenetre dos )
Merci
Version imprimable
Bonsoir
Je voudrais savoir quel est le "nom" des touches Entrer Echap ainsi que celui des fleches afin que mon programme puisse les reconnaitre dans le but d'executer l'action correspondante ( en fenetre dos )
Merci
Je ne comprends pas ce que tu veux dire par "nom".Citation:
Envoyé par Raptor20
Quelle fonction(s) utilises-tu pour savoir quelle touche est enfoncée ?
Oui c'est ca
Par exemple si l'utilisateur appuye sur la touche Echap, le programme le reconnait et execute l'instrution correspondante dans mon programme
Les fonctions standards du C sont faites pour saisir une ligne de texte, donc terminée par un <enter> ('\n'). Elle utilisent stdin, et le système gère la correction de saisie. (BACKSPACE)Citation:
Envoyé par Raptor20
Si tu veux une fonction de bas niveau pour saisir directement ESC ou les flèches etc, il faut utiliser d'autres fonctions, non portables. Quel est ton système ?
Je suis sous windows xp
Alors si tu utilises MinGW (dev-C++, wxDev-C++, Code::Blocs, MinGW Studio) tu peux utiliser la bibliothèque CONIO et la fonction getch().Citation:
Envoyé par Raptor20
Si ce n'est pas déjà fait (à vérifier) installer CONIO (C'est un DevPak)
Ajouter libconio.a (conio) à la configuration de l'IDE
Inclure <conio2.h> dans les sources qui en ont besoin
Code:
1
2
3
4
5
6
7
8
9 #include <conio2.h> [...] int c = getch(); if (c == 27) /* ESC */ { /* ... */ }
Ok merci ca marche :ccool:
Et pour les fleches c'est quoi ?
Peut on trouver quelque part les numeros correspondant a toutes les touches du clavier Azerty
Merci
Je vois qu'il y a d'autre interesse :zekill:
La meme question pour moi svp
Bah, tu peux le trouver toi même. Ce qu'il faut savoir, c'est que les touches 'étendues' envoient 2 caractères au lieu d'un. Sous Windows, le premier caractère est 0 ou 224. Si on lit 0 ou 224, on peut donc chercher à savoir si il y a encore un caractères dans le buffer. Pour ça, on utilise kbhit(). Ensuite, selon le caractère lu, on a affaire à telle ou telle touche.Citation:
Envoyé par Maverick27
A toi de faire les affichages nécessaires et d'en tirer les conclusions...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 int c = getch(); switch (c) { case 0; if (kbhit()) { c = getch(); /* touche 'etendue' : 0-x */ } else { /* touche 'simple' : ASCII 0 */ } break; case 224; if (kbhit()) { c = getch(); /* touche 'etendue' : '224-x ' */ } else { /* touche 'simple' : ASCII 224 */ } break; default: /* touches 'simples' : ASCII c */ }
Sinon, il doit bien y avoir une doc dans MSDN... Euh... je te laisse chercher !
la meilleure technique:
passer dans une fonction qui retourne le code assci et qui apres, dans ton programme principale, compare la valeur lue à ta valeur désirée