Cet IDE n'est plus maintenu, je te conseille de le remplacer par Code::Blocks (même compilateur, mêmes DevPaks).
Tu as donc accès à la bibliothèque CONIO (Télécharger le DevPak si tu ne l'as pas)
Dans ce cas, le principe est simple. :
- Le header est <conio.h>
- getch() retourne le code ASCII des touches 'courantes'.
- Si elle retourne 0 ou 244, il est possible qu'une touche 'étendue' ait été frappée. Pour le savoir, on regarde si un deuxière code est disponible dans le bugger clavier avec kbhit().
- Si il y a un code disponible, on le lit avec getch(). Selon sa valeur, c'est une des touches étendues.
Petit programme illustrant ce fonctionnement. Je te laisse en tirer les conclusions qui s'imposent (je te conseille d'utiliser des constantes (UP, DOWN, LEFT, RIGHT etc.) dans ton application.
Code :
- #include <conio2.h>
- enum
- {
- ESC = 27,
- dummy
- };
- int main (void)
- {
- int end = 0;
- while (!end)
- {
- int c = getch ();
- cprintf ("%4d", c);
- switch (c)
- {
- case 0:
- if (kbhit ())
- {
- c = getch ();
- cprintf ("%4d", c);
- }
- break;
- case 224:
- if (kbhit ())
- {
- c = getch ();
- cprintf ("%4d", c);
- }
- break;
- case ESC:
- end = 1;
- break;
- }
- cprintf ("\n\r" );
- }
- return 0;
- }
|
Message édité par Emmanuel Delahaye le 18-10-2006 à 11:08:53
---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/