Darkneon
Messages postés56Date d'inscriptionvendredi 18 mai 2001StatutMembreDernière intervention13 décembre 2005
-
11 déc. 2003 à 19:34
Darkneon
Messages postés56Date d'inscriptionvendredi 18 mai 2001StatutMembreDernière intervention13 décembre 2005
-
16 avril 2005 à 04:14
Salut,
Mon but est de faire bouger le curseur a l'ecran avec les fleches et d'afficher une lettre a cette position.
J'ai le codde suivant.
#include <stdio.h>
#include <conio.h>
#include
const char ESC = 27;
const char UP = 72;
const char LEFT = 75;
const char RIGHT = 77;
const char DOWN = 80
int main() {
char key = LEFT;
int done = 0;
int x 1, y 1;
while(!done) {
key = getch();
switch(key) {
case UP: y-- ; break;
case DOWN: y++; break;
case LEFT: x--; break;
case RIGHT: x++; break;
case ESC: done = 1; break;
default:
cout << key;
x++;
}
gotoxy(x,y);
}
return 0;
}
Le probleme est que lorsque j'appuie sur une fleche, le code dans default est execute aussi. Je crois que le probleme est avec switch.
Je veux savoir la nature du probleme ainsi que comment le contourner.
Viper31
Messages postés96Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention 7 août 2005 12 déc. 2003 à 20:21
En faite , l explication viens du fait qu'en ASCII , les fleches generent deux caracteres ... donc si tu prend que le 1er , ca marche pas ... c un peu comme si tu essaye d'intercepter un CONTROLE + ALT avec un seul caractere :/
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 11 déc. 2003 à 19:50
en fait il ne s'éxécute pas "aussi", c'est le seul a être éxécuté (et heureusement), tout simplement parce que tu n'as pas les bons codes pour les touches
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 11 déc. 2003 à 20:41
alors il a un petit pb ton turboc++ s'il continue malgré le break
vc++6 me donne a chaque fois -32 pour un fleche, encore plus bizarre... quoi que non car getch = get character et les fleches ne sont pas des caractères.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Darkneon
Messages postés56Date d'inscriptionvendredi 18 mai 2001StatutMembreDernière intervention13 décembre 2005 11 déc. 2003 à 22:38
woooooooooooow, j'ai fini par trouver dans une autre source
il re-utiliser getch pour attraper une autre valeur qui est je sais pas trop quoi. Le code est revient a ca
while(!done) {
key = getch();
if (key == 0) {
key = getch();
switch(key) {
case UP: y-- ; break;
case DOWN: y++; break;
case LEFT: x--; break;
case RIGHT: x++; break;
}
}else if (key ESC) done 1;
else {
cout << key;
x++;
}
gotoxy(x,y);
}
Je vais aller chercher maintenant mais si quelqu'un connais un bon site (francais ou anglais) sur la manipulation du clavier et des chaines sous TC++, postez le ici. Merci