欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

检测键盘输入

程序员文章站 2022-05-27 10:32:23
...
对于键盘的输入检测通常处理方法是这样的

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]
但是我试过,程序对这些特殊按键没有反应。


如果有哪位朋友看出问题,不吝指点一二。