Détection des pressions sur les touches fléchées en C
De nombreux développeurs rencontrent des difficultés pour détecter les pressions sur les touches fléchées dans leurs applications de console C. Cet article vise à résoudre ce problème en explorant diverses méthodes et en identifiant une solution fiable.
Dépannage des tentatives existantes
Les deux méthodes décrites dans la question utilisent toutes deux le getch( ) fonction pour capturer les pressions sur les touches. Cependant, ils ne tiennent pas compte du fait que les touches fléchées produisent généralement deux pressions consécutives. La première pression sur une touche représente le code « touche étendue », suivi du code de la touche fléchée réelle.
Méthode de détection améliorée
Pour détecter avec précision les pressions sur les touches fléchées, une approche révisée est présenté ci-dessous :
#include <conio.h> #include <iostream> using namespace std; #define KEY_UP 72 #define KEY_DOWN 80 #define KEY_LEFT 75 #define KEY_RIGHT 77 int main() { int c = 0; while (1) { c = 0; switch ((c = getch())) { case KEY_UP: cout << "Up" << endl; break; case KEY_DOWN: cout << "Down" << endl; break; case KEY_LEFT: cout << "Left" << endl; break; case KEY_RIGHT: cout << "Right" << endl; break; default: cout << "null" << endl; break; } } return 0; }
Cette méthode capture d'abord le code « touche étendue » et le compare à une liste de codes de touches fléchées connus. Si une correspondance est trouvée, la direction de la touche fléchée correspondante est imprimée sur la console. Si le code capturé ne correspond à aucun code de touche fléchée, il est considéré comme une pression de touche "nulle".
Sortie et conclusion
Lors de son exécution, le programme détecte et affiche la direction correspondant à chaque touche fléchée enfoncée. Cette solution capture et interprète efficacement les pressions sur les touches fléchées, permettant aux développeurs de créer des applications de console interactives qui répondent de manière appropriée aux entrées de l'utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!