我写了一段代码来检测箭头键使用_getch();,我也希望检测esc键,但我实际上不知道我应该使用的数字是什么,所以任何帮助表示赞赏.
#include <conio.h>
#include <stdio.h>
#define KEY_UP 72
#define KEY_DOWN 80
#define KEY_LEFT 75
#define KEY_RIGHT 77
int c = 0;
_getch();
switch ((c = _getch())) {
case KEY_UP:
printf("Up\n");
break;
case KEY_DOWN:
printf("Down\n");
break;
case KEY_LEFT:
printf("Left\n");
break;
case KEY_RIGHT:
printf("Right\n");
break;
default:
printf("Null\n");
break;
Run Code Online (Sandbox Code Playgroud)
每个箭头键是ascii代码224和定义的两个字符的组合(注意第一个_getch();),但我不知道对于转义键,我尝试搜索但没有找到它们,这些的完整列表将如此很有帮助.
谢谢.
Up,Down,Left,Right被称为扩展密钥并检测它们你需要读取两个Char第一个是Null第二个是ASCII代码但ESC不是扩展密钥,所以你只能用一个检测它char.
我希望代码可以帮助您:
#include <stdio.h>
#include <stdlib.h>
#define esc 27
int main()
{
char ch;
do
{
ch = getch();
switch(ch)
{
case esc:
// your logic goes here
break;
}
}
while(exitflag != 1);
}
Run Code Online (Sandbox Code Playgroud)