C での矢印キーの押下を検出する
多くの開発者は、C コンソール アプリケーション内で矢印キーの押下を検出する際に課題に直面しています。この記事は、さまざまな方法を検討し、信頼できる解決策を特定することで、この問題に対処することを目的としています。
既存の試行のトラブルシューティング
質問で説明されている 2 つの方法はどちらも getch( ) キー入力をキャプチャする関数。しかし、矢印キーは通常 2 回連続してキーを押すという事実を考慮していません。最初のキー押下は「拡張キー」コードを表し、その後に実際の矢印キー コードが続きます。
検出方法の改善
矢印キーの押下を正確に検出するために、アプローチが改訂されました。
#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; }
このメソッドは、まず「拡張キー」コードを取得し、それを既知の矢印キー コードのリストと比較します。一致するものが見つかった場合、対応する矢印キーの方向がコンソールに出力されます。キャプチャされたコードがどの矢印キー コードにも一致しない場合、それは「null」キー押下とみなされます。
出力と結論
実行すると、プログラムは正常に検出され、押された各矢印キーに対応する方向を出力します。このソリューションは、矢印キーの押下を効果的にキャプチャして解釈し、開発者がユーザー入力に適切に応答する対話型コンソール アプリケーションを構築できるようにします。
以上がC コンソール アプリケーションで矢印キーの押下を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。