我读到你必须使用getch()两次才能在按下箭头键时获得一个值。第一个调用为箭头键返回0,第二个调用返回另一个值(例如,右箭头键为77)。我编写了以下程序来确认这一点,但我得到的第一个值是224,而不是零:
#include <stdio.h>
int main()
{
printf("Start: (x to quit)\n");
int d = getch();
int e = getch();
printf("%d", d);
printf("\n%d", e);
}
为什么第一个值不为零,224的意义是什么?
答案 0 :(得分:1)
“转义”代码Branch(Box<Foo>, Box<Foo>)
适用于数字小键盘(关闭0
)。专用光标控制键(和NumLock
等)使用转义码Home
。请试试这个:
224
另请注意,MSVC函数#include <stdio.h>
#include <conio.h>
int main()
{
int d=-1, e=-1;
printf("Start:\n");
d = _getch();
if (d == 0 || d == 224)
e = _getch();
printf("%d %d\n", d, e);
return 0;
}
已弃用,请使用getch()
(这些是_getch()
和getche()
的非回显版本。)
答案 1 :(得分:0)
试试这个
#include <stdio.h>
#include <conio.h>
int main()
{
printf("Start: (x to quit)\n");
char d = _getche();
char e = _getche();
printf("%c", d);
printf("\n%c", e);
}
我没有尝试过,但我认为它会起作用