检测键盘输入

对于键盘的输入检测通常处理方法是这样的

int key=0;
while(1){
if(bioskey(1)!=0){
key=bioskey(0);
printf("the key pressed is %x\n",key);
}
}

程序以while(1)的方式通过bioskey(1)不断监测是否有键盘输入。
如果监测到键盘输入,通过bioskey(0)把键盘的输入保存下来。
bioskey(0)的返回值包含了High-扫描码和low-ASCII.

bioskey(0)其实像getchar()一样阻塞等待,只是获取到不是ASCII,而是扫描码和ASCII。所以上面的程序也可以把

if(bioskey(1)!=0)

去掉


有其他朋友提到
[quote]
扫描码是每个键唯一的。
比方键盘上有两个enter,他们的ASCII是一样的,但是扫描码不一样。
[/quote]
但是我用上面的代码测试的时候打印的结果是一样的。


还有有其他朋友提到
[quote]
可以通过bioskey(2)获取特殊按键,比方说活Caps Lock,Shfit,Alt
[/quote]
但是我试过,程序对这些特殊按键没有反应。


如果有哪位朋友看出问题,不吝指点一二。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值