C ++ Определить, когда пользователь нажимает клавишу со стрелкой
У меня возникла проблема с обнаружением нажатий клавиш со стрелками в моем консольном приложении C ++. Я перепробовал все, что нашел, и здесь, и на других сайтах учебников, но все они дают мне то же самое, когда я нажимаю стрелку:
Process returned 0 <0x0> execution time : 2.249 s
Press any key to continue.
Вот все методы обнаружения нажатия клавиш, которые я пробовал, все заканчивалось одинаково. Это только два из оставшихся в моем коде, другие, которые я пытался удалить, вместо того, чтобы комментировать.
Способ первый:
c1 = getch();
if(c1 == 0)
{
c2 = getch();
if(c2 == 72) {cout << endl << "Up Arrow" << endl;}
else if(c2 == 80) {cout << endl << "Down Arrow" << endl;}
else{cout << endl << "Incorrect Input" << endl;}
}
Способ второй:
switch(getch()) {
case 65:
cout << endl << "Up" << endl;//key up
break;
case 66:
cout << endl << "Down" << endl; // key down
break;
case 67:
cout << endl << "Right" << endl; // key right
break;
case 68:
cout << endl << "Left" << endl; // key left
break;
}
Есть ли какая-то ошибка в моем коде, которая заставила меня вернуться к основному методу, или он пропустил какой-то код? Есть ли более быстрый способ сделать это? Я почти на 100% уверен, что мой другой код не имеет ничего общего с этой проблемой, потому что я изолировал код от зависимости от любого другого аспекта программы, и у меня продолжала возникать та же проблема.
Опять же, я перепробовал все способы нажатия клавиш со стрелками, которые мог найти, и продолжаю сталкиваться с той же проблемой. Если это имеет значение, я нахожусь на Windows 8 Samsung ATIV Smart PC и использую док-станцию клавиатуры.
Заранее благодарю за любую помощь.