C ++ Detectar quando o usuário pressiona a tecla de seta
Estou tendo um problema ao detectar pressionamentos de tecla de seta no meu aplicativo de console C ++. Eu tentei tudo o que encontrei, aqui e em outros sites de tutoriais, mas todos eles me dão a mesma coisa sempre que pressiono a seta:
Process returned 0 <0x0> execution time : 2.249 s
Press any key to continue.
Aqui estão todos os métodos para detectar o pressionamento de tecla que tentei, todos terminando da mesma maneira. Estes são os únicos dois restantes no meu código, os outros que eu tentei excluí em vez de comentar.
Método um:
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;}
}
Método dois:
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;
}
Existe algum erro no meu código que me fez voltar ao meu método principal ou ele pulou algum código? Existe uma maneira mais rápida de fazer isso? Tenho quase 100% de certeza de que meu outro código não tem nada a ver com esse problema, porque eu o isolei de depender de qualquer outro aspecto do programa e continuava tendo o mesmo problema.
Novamente, tentei todos os métodos de pressionar a tecla de seta que consegui encontrar e continuo tendo o mesmo problema. Se isso for importante, eu estou no Windows 8 Samsung ATIV Smart PC e usando a estação para teclado.
Agradecemos antecipadamente por qualquer ajuda.