bioskey 捕获键盘按键值

本文介绍了C语言中如何使用bioskey()函数捕获非ASCII字符输入,包括方向键和其他控制键。通过示例代码,解释了bioskey(1)、bioskey(0)和bioskey(2)的不同用法,以及如何处理键盘状态和按键码,以实现对特殊按键的识别和处理。
摘要由CSDN通过智能技术生成

 说明:通过学习知识,你能轻松得到“按键值”,编程使用时不需要强行记忆“按键值”

 

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未按下            <

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值