`
anonymousstone
  • 浏览: 12222 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

检测键盘输入

    博客分类:
  • C
阅读更多
对于键盘的输入检测通常处理方法是这样的
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)

去掉


有其他朋友提到
引用

扫描码是每个键唯一的。
比方键盘上有两个enter,他们的ASCII是一样的,但是扫描码不一样。

但是我用上面的代码测试的时候打印的结果是一样的。


还有有其他朋友提到
引用

可以通过bioskey(2)获取特殊按键,比方说活Caps Lock,Shfit,Alt

但是我试过,程序对这些特殊按键没有反应。


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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics