首頁 > 後端開發 > C++ > 如何偵測 C 控制台應用程式中的箭頭鍵按下情況?

如何偵測 C 控制台應用程式中的箭頭鍵按下情況?

Mary-Kate Olsen
發布: 2024-11-09 10:06:02
原創
774 人瀏覽過

How to Detect Arrow Key Presses in C   Console Applications?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板