0

無限にループするメイン ルーチンがあります。キーボード入力を使用して bool 変数を変更することで、そのループ内の特定の if{} ステートメントが呼び出されるかどうかを制御できるようにしたいと考えています。私はこのスレッドを見つけました:
C non-blocking keyboard input
しかし、一見基本的な機能のために非常に面倒で複雑に思えます。それを行う簡単な方法はありますか?

4

3 に答える 3

3

入力イベントを取得するには、OS/ファームウェア/フレームワーク/環境APIを使用するか、これを行うライブラリを使用する必要があります。とにかく、C++でこれを行う組み込みの方法はありません。

私はゲームでOISをよく使用します。クロスプラットフォームで使いやすいです。ゲーム以外の場合に役立つかどうかはわかりませんが、それはあなたのために仕事をします。

于 2011-03-05T12:17:24.060 に答える
1

SDLライブラリは、クロスプラットフォームを実現する 1 つの方法です。キーボード イベントのポーリングの例を次に示します

于 2011-03-05T12:36:15.533 に答える
1

メインルーチンをスレッドに入れてから、次のようなものを用意します

static char mode = ' ';
while(mode != 27) // to allow Esc to end program
{
  mode = _getch();
}

スレッド化されたコードは、押されたキーに基づいてさまざまなことを行うことができます。

于 2011-03-05T12:36:33.657 に答える