Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何读取键盘上的每个键?_C_Linux_Keyboard_Ascii - Fatal编程技术网

C 如何读取键盘上的每个键?

C 如何读取键盘上的每个键?,c,linux,keyboard,ascii,C,Linux,Keyboard,Ascii,我们如何读取键盘上每个键的ascii码 我使用了getch()和其他类似的键。。但不读取FN键或Numlock或任何全局快捷键 那么如何在C程序中捕获这些键呢 提到了三种情况: 删除等等 FN键(功能键) NumLock(专用钥匙) 在Linux上下文中,指的是ncurses函数。如果您使用的是ncurses,那么您可以告诉它对功能键(发送一系列字符)进行解码,并将其作为单个数字返回(刚好太大,无法放入字符中)。比如说 int ch; keypad(stdscr, TRUE); ch = get

我们如何读取键盘上每个键的ascii码

我使用了
getch()
和其他类似的键。。但不读取
FN键
Numlock
或任何全局快捷键


那么如何在C程序中捕获这些键呢

提到了三种情况:

  • 删除等等
  • FN键(功能键)
  • NumLock(专用钥匙)
  • 在Linux上下文中,指的是ncurses函数。如果您使用的是ncurses,那么您可以告诉它对功能键(发送一系列字符)进行解码,并将其作为单个数字返回(刚好太大,无法放入
    字符中)。比如说

    int ch;
    keypad(stdscr, TRUE);
    ch = getch();
    
    NumLock是另一种情况,因为它(与控制键和shift键一样)用作修改器,通常本身不发送字符:

    • X窗口环境是这样使用它的——它可以直接读取底层数据。X程序(如
      xterm
      )可以读取包含此信息的X事件。在本例中,的源代码是一个很好的起点
    • 在控制台环境中,可以使用Linux特定的调用来读取数据。如果你真的需要,手册页是一个很好的开始
    谢谢。这是很有见地的:)。现在转到代码。:)