c - 有没有更好的方法来分析在 C 的屏幕上没有打印的情况下按下的键(例如箭头键和 Return)?

标签 c keystroke

代码片段 (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/

相关文章:

c - 将变量从 linux 内核传递给进程

java - java中单击按钮时如何获取textArea的文本

c - 从文件读取和打印

Switch 中的 C 帮助

c# - 将击键发送到其他控件

java - Java 中的操作停止工作

java - 在应用程序之外记录击键

C、memset双数组失败

c - 如何使用 ANTLR3C 生成介绍性识别器?

c - C scanf ("%c")函数一一读取字符的问题