易码技术论坛

 找回密码
 加入易码
搜索
查看: 1154|回复: 7

[求助] 关于2个按键的同时读取~

[复制链接]
发表于 2007-12-28 12:01:47 | 显示全部楼层 |阅读模式
请问怎么用LAVA实现2个按键的读取?
我用了下面的程序实现了一下~但不理想

void main(){
char k,kk;
while(1){
if(k=='q'&&kk=='l')printf("ok");
k=getchar();kk=getchar();
ReasekKey(128);   //字好像打错了
}

}


这样可以实现但郊果不好~请问要怎么实现比较好呢?


}
 楼主| 发表于 2007-12-28 12:07:04 | 显示全部楼层

这个

if (CheckKey('a') && CheckKey('b')) {

代码

}
LEE大哥这样写的
还有别的方法吗?
发表于 2007-12-28 19:57:12 | 显示全部楼层
楼顶写的错了
两次getchar无法检验多键组合(例如3键同按)
 楼主| 发表于 2007-12-30 11:21:55 | 显示全部楼层

那这样呢?

c=getchar();
if (c=='28'&& CheckKey('b')) {  //假设为F1

代码

}
这样郊果应不错了吧?
发表于 2007-12-30 11:41:19 | 显示全部楼层
还是不对。理由同上。
最好的办法就是两个CheckKey的组合
发表于 2007-12-30 11:43:37 | 显示全部楼层
注意:
getchar是取键盘缓冲区的内容(此键可能是很久前按下的,但是由于没取,就一直保留着)
CheckKey是实时检验当前按键
二者最好不要混用
 楼主| 发表于 2007-12-31 09:00:29 | 显示全部楼层

但是用二个CheckKey的话

他返回的值不就不只一个了啊~
也不是说不只一个是返回的速度太快了~!
发表于 2007-12-31 17:54:54 | 显示全部楼层
假如a,b,c同按,
则CheckKey('a')  && CheckKey('b') 成立
getchar getchar可能得到:a,b   a,c  b,c
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-19 22:40 , Processed in 0.010202 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表