我在我的 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;
}
我的代码中是否有错误导致我回到了主方法,或者它跳过了某些代码?有没有更快的方法来解决这个问题?我几乎可以确定我的其他代码与这个问题无关,因为我将代码与程序的任何其他方面隔离开来,并且我一直遇到同样的问题。
再次说明,我尝试了所有我能找到的获取箭头键按下的方法,但我仍然遇到了同样的问题。如果有影响的话,我使用的是Windows 8三星ATIV Smart PC并使用键盘底座。
提前感谢任何帮助。