说明:通过学习知识,你能轻松得到“按键值”,编程使用时不需要强行记忆“按键值”
scanf("%c",&ch)运行的时时侯,不论怎么按那些方向键和控制键(非ASCII的字符输入键),都没有什么反应. 这是什么原因.这些不是字符输入键.
而为了捕获 非字符输入键 C语言提供了函数bioskey(),函数名的字面意思可知"基本输入输出系统键".
在bios.h中的原型声明:
int _Cdecl bioskey(int cmd);
bioskey()是怎么用的呢?
bioskey(1)检测是否有键(不检查单独控制键的按下(Shift/Ctrl/CapsLock/Alt/ScrLock/PrtScr/NumLock/PauseBreak))按下,没有键按下时返回0,有键按下时返回按键码(任何按键码都不为0),但此时并不将检测到的按键码从键盘缓冲队列中清除.
bioskey(0)返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清除.
bioskey(2)返回按键的状态,返回值保存在低8位中含义如下:
第几位 位为0时意义 为1时意义
7 插入状态 改写状态
6 大写状态 小写状态
5 数字状态,NumLock灯亮 光标状态,NumLock灯熄
4 ScrollLock灯亮 ScrollLock灯熄
3 Alt按下 Alt未按下
2 Ctrl按下 Ctrl未按下 <