Pfeiltastendrücke in C erkennen
Viele Entwickler stehen vor Herausforderungen bei der Erkennung von Pfeiltastendrücken in ihren C-Konsolenanwendungen. Ziel dieses Artikels ist es, dieses Problem anzugehen, indem verschiedene Methoden untersucht und eine zuverlässige Lösung ermittelt werden.
Fehlerbehebung bei bestehenden Versuchen
Die beiden in der Frage beschriebenen Methoden nutzen beide den getch( )-Funktion zum Erfassen von Tastendrücken. Sie berücksichtigen jedoch nicht die Tatsache, dass Pfeiltasten normalerweise zwei aufeinanderfolgende Tastendrücke bewirken. Der erste Tastendruck stellt den Code für die „erweiterte Taste“ dar, gefolgt vom eigentlichen Pfeiltastencode.
Verbesserte Erkennungsmethode
Um Pfeiltastendrücke genau zu erkennen, ein überarbeiteter Ansatz wird unten vorgestellt:
#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; }
Diese Methode erfasst zunächst den Code der „erweiterten Taste“ und vergleicht ihn mit einer Liste bekannter Pfeiltastencodes. Wenn eine Übereinstimmung gefunden wird, wird die entsprechende Pfeiltastenrichtung auf der Konsole ausgegeben. Wenn der erfasste Code mit keinem Pfeiltastencode übereinstimmt, wird dies als „Null“-Tastendruck betrachtet.
Ausgabe und Schlussfolgerung
Bei der Ausführung erkennt das Programm erfolgreich und gibt die Richtung aus, die jeder gedrückten Pfeiltaste entspricht. Diese Lösung erfasst und interpretiert effektiv das Drücken von Pfeiltasten und ermöglicht es Entwicklern, interaktive Konsolenanwendungen zu erstellen, die angemessen auf Benutzereingaben reagieren.
Das obige ist der detaillierte Inhalt vonWie erkennt man das Drücken von Pfeiltasten in C-Konsolenanwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!