我正在尝试访问C中的击键。我可以访问字母数字键。如何访问 Control , Shift 和 Alt 键?
另外,我在某处读到有时在控制台中输入文本时,操作系统会屏蔽退格键。我想知道用户按下退格键的位置。知道何时按下'\ n'并不相同。
GNU C. Ubuntu 11.
答案 0 :(得分:2)
Dietrich Epp在评论中回答:使用 ncurses 库。
您可以创建一个X11客户端图形应用程序;在这种情况下,使用图形工具包库,如GTK或Qt
如果您想制作控制台应用程序,请使用ncurses或readline
你的问题,从字面上看,没有任何意义:严格的C标准不知道键或键击是什么(标准中提到的唯一I / O操作与<stdio.h>
通过FILE
)。这就是为什么大多数人使用额外的库和标准(除了ISO C要求的那些),例如。 Posix ...
答案 1 :(得分:1)
简单的答案是“你不能”,至少不容易或不下载第三方库。
大多数C程序不应该对键盘或屏幕有任何了解。标准C仅涉及读取和写入文件(键盘和屏幕是特殊情况文件)。
假设您有充分的理由希望直接访问键盘,您应该查看ncurses库(http://www.gnu.org/software/ncurses/ncurses.html)。 Ncurses知道有多少不同的(虚拟)终端和键盘工作,它为它们提供了统一的接口。它允许您绘制屏幕并仅使用文本块创建替代图形界面。
由于您使用的是Ubuntu,请尝试运行“aptitude”命令,以查看ncurses可以执行的一个很好的示例。