Странное поведение getch ()

У меня есть такая программа:

#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, отображается одно целое число (за одну итерацию цикла). Однако, если я нажимаю такие клавиши, как Вставить, Удалить или стрелки, отображаются сразу два целых числа.

Почему происходит такое поведение?

2

Решение

От _getch ()

При чтении функциональной клавиши или клавиши со стрелкой каждая функция должна вызываться дважды;

Первый вызов возвращает 0 (для F1-F10) или 0xE0 (224) (для других), а второй вызов возвращает фактический код ключа.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]