代码片段(完整代码在这里.)
int Process (void)
{
for (;;)
{
unsigned char Char_Fore = getch();
if (Char_Fore == 0xE0)
{
unsigned char Char_Back = getch();
switch (Char_Back)
{
case 0x48:
Up();
break;
case 0x50:
Down();
break;
}
}
else if (Char_Fore == 0x0D)
Enter();
}
return 0;
}
此代码可以在某些计算机上正常运行,但某些计算机由于getch()
函数而无法正常运行。
getch()
或_getch()
是用conio.h
声明的函数,如果您的键盘不是 IBM set 2,或者选择了不同的编译器(不是 Mingw-gcc),则返回值会有所不同。
有没有更好的方法来分析在 C 中按下的键,而无需在屏幕上打印,也不使用已弃用的功能,如控制台中的getch()
或_getch()
?
这不是一个真正的答案,但我没有足够的声誉来评论。
我记得使用过一个名为termios.h的标头,使用它我可以关闭字符的回显,现在这是在UNIX系统上,但我想有一个Windows等效物。
这是Windows.h的按键代码,也许您可以根据需要进行调整?http://www.cplusplus.com/forum/articles/7312/#msg33734
或诅咒,听起来像是你想使用的东西。
PDCurses 似乎是 Windows 选项 - ncurses 是否可用于 Windows?