Linux 上で `kbhit()` および `getch()` 機能をエミュレートするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-31 03:45:01
オリジナル
276 人が閲覧しました

How to Emulate `kbhit()` and `getch()` Functionality on Linux?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!