2

私はこのようなプログラムを持っています:

#include <iostream>
#include <conio.h>
using namespace std;

int main ()
{
    for (int i = 0; i < 10; i++)
    {
        cout << int (_getch ()) << endl;
    }
    _getch ();
    return 0;
}

数字、アルファベット、Enter などのキーを押すと、(ループの反復ごとに) 1 つの整数が表示されます。ただし、Insert、Delete、または矢印などのキーを押すと、一度に 2 つの整数が表示されます。

なぜこの動作が発生するのですか?

4

1 に答える 1

3

_getch()から

ファンクション キーまたは矢印キーを読み取るときは、各関数を 2 回呼び出す必要があります。

最初の呼び出しは 0 (F1-F10 の場合) または 0xE0 (224) (その他の場合) を返し、2 番目の呼び出しは実際のキー コードを返します。

于 2013-08-12T06:35:07.657 に答える