Mengesan Penekanan Kekunci Anak Panah dalam C
Ramai pembangun menghadapi cabaran dalam mengesan penekanan kekunci anak panah dalam aplikasi konsol C mereka. Artikel ini bertujuan untuk menangani isu ini dengan meneroka pelbagai kaedah dan mengenal pasti penyelesaian yang boleh dipercayai.
Menyelesaikan Masalah Percubaan Sedia Ada
Kedua-dua kaedah yang diterangkan dalam soalan kedua-duanya menggunakan getch( ) berfungsi untuk menangkap penekanan kekunci. Walau bagaimanapun, mereka gagal mengambil kira fakta bahawa kekunci anak panah biasanya menghasilkan dua kekunci kekunci berturut-turut. Penekanan kekunci pertama mewakili kod "kekunci lanjutan", diikuti dengan kod kekunci anak panah sebenar.
Kaedah Pengesanan Yang Diperbaik
Untuk mengesan penekanan kekunci anak panah dengan tepat, pendekatan yang disemak semula dibentangkan di bawah:
#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; }
Kaedah ini mula-mula menangkap kod "kunci lanjutan" dan membandingkannya dengan senarai kod kekunci anak panah yang diketahui. Jika padanan ditemui, arah kekunci anak panah yang sepadan dicetak ke konsol. Jika kod yang ditangkap tidak sepadan dengan mana-mana kod kekunci anak panah, ia dianggap sebagai penekan kekunci "null".
Output dan Kesimpulan
Apabila dijalankan, program berjaya mengesan dan mengeluarkan arah yang sepadan dengan setiap kekunci anak panah yang ditekan. Penyelesaian ini secara berkesan menangkap dan mentafsir penekanan kekunci anak panah, membolehkan pembangun membina aplikasi konsol interaktif yang bertindak balas dengan sewajarnya kepada input pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Penekanan Kekunci Anak Panah dalam Aplikasi Konsol C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!