Linux での kbhit() および getch() 機能のエミュレーション
kbhit() および getch() 関数は、Windows で一般的に使用されます。ループの実行を中断せずに入力をチェックします。ただし、これらの関数は、Linux オペレーティング システムではネイティブにサポートされていません。
同等の kbhit()
Linux で同様の機能を実現するには、Morgan Mattews の実装を利用できます。 kbhit() 関数。この実装は POSIX 準拠のシステムと互換性があり、ここで見つけることができます。
同等の getch()
kbhit() は termios レベルでバッファリングを非アクティブ化するため、 getchar() の問題にも対処します。提供されている Windows の例のように、バッファリングを無効にせずに getchar() をそのまま使用できます。
両方の関数の組み合わせ
kbhit() 機能を実装したら、次のように Windows の例を Linux に適応させることができます:
<code class="C++">#include <unistd.h> #include <iostream> int main() { while (true) { if (kbhit()) { int key = getch(); if (key == 'g') { std::cout << "You pressed G" << std::endl; } } usleep(500000); std::cout << "Running" << std::endl; } }</code>
以上がLinux 上で `kbhit()` および `getch()` 機能をエミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。