gpt4 book ai didi

C++检测用户何时按下箭头键

转载 作者:可可西里 更新时间:2023-11-01 17:07:43 24 4
gpt4 key购买 nike

我在检测 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 三星 ATIV 智能 PC 并使用键盘扩展坞。

在此先感谢您的帮助。

最佳答案

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

#define KEY_UP 72
#define KEY_DOWN 80
#define KEY_LEFT 75
#define KEY_RIGHT 77

int main()
{
int c = 0;
while(1)
{
c = 0;

switch((c=getch())) {
case KEY_UP:
cout << endl << "Up" << endl;//key up
break;
case KEY_DOWN:
cout << endl << "Down" << endl; // key down
break;
case KEY_LEFT:
cout << endl << "Left" << endl; // key left
break;
case KEY_RIGHT:
cout << endl << "Right" << endl; // key right
break;
default:
cout << endl << "null" << endl; // not arrow
break;
}

}

return 0;
}

输出如下:

Up

Down

Right

Left

Up

Left

Right

Right

Up

检测到方向键按下!

关于C++检测用户何时按下箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com