在C 中偵測箭頭鍵按下
許多開發人員在偵測C 主機應用程式中的箭頭鍵按下時遇到挑戰。本文旨在透過探索各種方法並確定可靠的解決方案來解決此問題。
對現有嘗試進行故障排除
問題中描述的兩種方法都使用 getch( ) 函數來捕獲按鍵。然而,他們未能考慮到箭頭鍵通常會產生兩次連續按鍵的事實。第一個按鍵代表「擴展鍵」代碼,後面是實際的箭頭鍵代碼。
改進的檢測方法
為了準確檢測箭頭鍵按下,修改了方法如下所示:
#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; }
此方法首先捕獲「擴展密鑰」代碼並將其與已知清單進行比較箭頭鍵代碼。如果找到匹配項,相應的箭頭鍵方向將列印到控制台。如果捕獲的代碼與任何箭頭鍵代碼都不匹配,則被視為“空”按鍵。
輸出與結論
運行時,程式成功偵測到並輸出與按下的每個箭頭鍵相對應的方向。該解決方案有效地捕獲和解釋箭頭鍵按下,使開發人員能夠建立能夠正確響應用戶輸入的互動式控制台應用程式。
以上是如何偵測 C 控制台應用程式中的箭頭鍵按下情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!