代码片段 (Full code here.) :
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 的 header ,并使用它我可以关闭字符回显,现在这是在 UNIX 系统上,但我想有一个 Windows 等效项。
这是 windows.h 中的 pressanykey 代码,也许您可以根据需要调整它? http://www.cplusplus.com/forum/articles/7312/#msg33734
关于c - 有没有更好的方法来分析在 C 的屏幕上没有打印的情况下按下的键(例如箭头键和 Return)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21057939/