C言語でキー状態を確認する方法

C 言語では、キーの状態を検出するメソッドは次のとおりです:

  1. 「conio.h」ヘッダファイルの「_getch()」関数で押されたキー値を取得します。この関数はキーが押されるとすぐにキーのASCIIコードを返し、何も押されていない時は0を返します。無限ループを使ってキー値を繰り返し取得し、キー値によってキーの状態を判断できます。
#include <conio.h>
#include <stdio.h>

int main() {
    int key;

    while (1) {
        key = _getch();

        if (key != 0) {
            printf("Key pressed: %c\n", key);
        }
    }
    
    return 0;
}
  1. Windows.hヘッダーファイルにあるGetAsyncKeyState()関数を使って、押されているキー値を取得します。この関数は、short型の値を返します。その最高位がキーの状態(押されているときは負の数、押されていないときは非負の数)を表し、それ以外のビットはキーのASCIIコードを表します。無限ループを使ってキー値を連続的に取得し、戻り値に従ってキーの状態を判断することができます。
#include <windows.h>
#include <stdio.h>

int main() {
    short key;

    while (1) {
        for (int i = 0; i < 256; i++) {
            key = GetAsyncKeyState(i);

            if (key & 0x8000) {
                printf("Key pressed: %c\n", i);
            }
        }
    }

    return 0;
}

キーの状態を判別する2つの一般的な方法は上記になります。なお、これらの方法はWindowsプラットフォーム上での動作を想定しており、OSによってキーの状態を判別する手法は異なる可能性があります。

bannerAds