Maison > développement back-end > C++ > le corps du texte

Comment détecter les pressions sur les touches fléchées dans les applications de la console C ?

Mary-Kate Olsen
Libérer: 2024-11-09 10:06:02
original
725 Les gens l'ont consulté

How to Detect Arrow Key Presses in C   Console Applications?

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal