salut
je veux savoir comment je peux programmer les fléches de clavier a l'aide de compilateur turbo c++
avec les librairies standar
merci d'avance
Version imprimable
salut
je veux savoir comment je peux programmer les fléches de clavier a l'aide de compilateur turbo c++
avec les librairies standar
merci d'avance
Je ne sais pas PDCurses est utilisable avec Turbo C++ (je n'ai jamais utilisé cet environnement), mais je crois que conio est disponible et devrait te permettre de jouer avec les flèches du clavier.
Venant du monde Unix, je n'ai jamais utilisé cette bibliothèque, mais c'est sans doute une piste.
Thierry
Salut,
Vu que tu utilise TC++ ...
Ce code ne sera du tout pas portable !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 #include <conio.h> <...> enum keyEvent { HAUT=72,BAS=80,DROITE=77,GAUCHE=75 }; <...> int key; /* Lecture sans écho*/ key=getch(); if( key==224 || key==0 ) { /* Touche étendue ! Lecture du deuxième code */ key=getch(); switch( key ) { case HAUT : /* Traitement ...*/ break; case BAS : /* Traitement ...*/ break; case DROITE : /* Traitement ...*/ break; case GAUCHE : /* Traitement ...*/ break; } }
Je pense que ce n'est pas possibleCitation:
Envoyé par =ratsmok
EDIT : La réponse est aussi dans la FAQ : Comment gérer les touches étendues (F1..F12, flèches) ?
"programmer les fléches de clavier" n'a aucun sens. Si tu veux dire détecter, avec les fonctions standards, ce n'est pas possible. Il faut utiliser l'extension conio (<conio.h> livrée avec Turbo C) et les fonctions :
et savoir que les flèches sont une séquence de 2 caractères : 0 et un autre dont la valeur te sera révélée par ce petit programme de test :
- kbhit() (detection de frappe)
- getch() (lecture sans attente)
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 /* Turbo C */ #include <conio.h> int main (void) { int fin = 0; clrscr (); while (!fin) { int c = getch (); switch (c) { case 0: if (kbhit ()) { c = getch (); cprintf ("EXT : c= 0 %d\n\r", c); } break; case 27: /* ESC */ fin = 1; } } return 0; }