当前位置:首页 » 编程语言 » c语言同时检测两个键
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言同时检测两个键

发布时间: 2022-11-28 19:59:07

1. c语言。如何同时接收两个键

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void main()
{
short a;
short b;
printf("Hello World!");
while(1)
{
a=GetAsyncKeyState('A');
b=GetAsyncKeyState('B');
if(a<0&&b<0)
{
printf("press A and B \n");
}
Sleep(100);
}
}

//同时按下A键和B键就会打印字符

2. 求救c语言 如果要检测两个键同时被按下和松手检测的,要怎么样写呢

程序是顺序执行的,不存在严格的“同时”检测。所以,我们可以设置一个很“高”的检测频率。在同一个检测周期里发现按键都按下就可当做是同时按下。
然后你需要解决如何发现按键按下动作这个问题。
按键按下同样也不必一按下你就马上要发现这么紧张。同样在这么一个很“高”的检测频率下。发现前一次检测是个“没按下”状态现在变成了“按下”那就可以当做是这次检测周期里“按下”。
然后你需要解决如何记录前一次检测是什么东西的问题。
你需要额外用个寄存器暂时放你前一次检测的结果。并在检测周期结束之前记录当前的“日志”。
于是,你可以很从容地发现现在按键的状况以及上一次按键是个什么情况,你掌握了历史、当下、还要安排一下未来:检测到按键的动作后你要再写个服务程序来使用这个按键检测的结果。
最后,再说明一下,这个很“高”的频率大概10几ms也行的。越高频率检测越准确。同时。这个“同时”的检测也越严格。你可能会导致怎么按都很难触发‘同时’的动作。

3. 摁键盘中,同时按下两个键的c语言程序怎么写求一段程序

按键的同时检测
如果实在游戏里面
windows.h,stdio.h
if(GetAsyncKeyState('A')&0x8000)//'A'
c|=4;
if(GetAsyncKeyState('D')&0x8000)//'D'
c|=8;
if(c&4&&c&8)
{printf("hello");
c=0;
}
用了GetAsyncKeyStateapi的函数,这个函数的使用方法很有特点
用了get监测按键按下,然后c分别和4,8来或运算,然后if再用与运算监测,确实按下了那两个按键之后执行什么,当然在加&&,可以监测多个按键

4. C程序怎样样判断连续两次按键

首先,连续两次按键不是C的功能(严格讲,C标准没有按键这个功能的)而是你的操作系统或平台的功能(如单片机和PC肯定不同)windwos下,1般编译器有1个kbhit()函数(VC,gcc,c++builder都有)它可判断是不是有键按下,这样就能够实现你的要求以下程序连续两次按键后退出#includeconio.hintmain(){while(kbhit()==0);getch();///按了1次while(kbhit()==0);getch();///按了2次return0;}固然,如果你是单片机或其它平台,kbhit()或许就要自己实现了

5. 51单片机矩阵键盘如何实现两个键同时按下的时候显示其他数字,用c语言程序实现,

定义一个按键缓冲区
用普通的按键扫描程序,当扫描到有按键按下的时候。按键键的值写入缓冲区。继续扫描直到完成。
然后返回缓冲区地址就可以得到多个按键的数据了。
这样只要定义16字节的缓冲区全部按键都能检测到。(一般不需要那么多6个足够)

还有一种方式 是 如果只返回2个按键的话。
可以这样
常规按键扫描 返回范围在0-15也就是0-F
读取到一个值后把这个值左移4位
再继续读取。当读取到第二个值的时候与上第一个值。就能获取2个按键的值了。

6. c语言 GetAsyncKeyState好像只能同时按下两个键有用,第三个键就没用了,请大神帮忙决绝下

按键的同时检测如果实在游戏里面windows.h,stdio.hif(GetAsyncKeyState('A')&0x8000)//'A'c|=4;if(GetAsyncKeyState('D')&0x8000)//'D'c|=8;if(c&4&&c&8){printf("hello");c=0;}用了GetAsyncKeyStateapi的函数,这个函数的使用方法很有特点用了get监测按键按下,然后c分别和4,8来或运算,然后if再用与运算监测,确实按下了那两个按键之后执行什么,当然在加&&,可以监测多个按键

7. 求救c语言 如果要检测两个键同时被按下和松手检测的,要怎么样写呢

C语言 用getch() 可以即时获得按键的键值。
如果按下一个键,手不移动,根据你的键盘设置(按键时间长于多少则为新的按键),getch()会连续获得键值。
组合键将输出组合键的键值。
某些键,按一次会有2个键值,例如 F1,F2...F12, 上下左右箭头键。

Windows 和MFC c++ 程序 可以或的 各种复杂的按键“事件”,按着,抬起,按下抬起,你可以测时间间隔,时间延时,可以写很噜苏的程序。

#include<stdlib.h>
#include<stdio.h>
void main()
{
int i;
int key,key2;
// 普通键用 getch();取得
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
// 箭头键
if (key == 0xe0) {
key = getch();
printf("\nkey value = %02x -- %d\n",key,key);
};
// F1键
if (key == 0) {
key2 = getch();
printf("\nkey value = %02x\n",key2);
switch (key2) {
case 0x003b: printf("F1 key");break;
case 0x003c: printf("F2 key");break;
case 0x003d: printf("F3 key");break;
case 0x003e: printf("F4 key");break;
case 0x003f: printf("F5 key");break;
case 0x0040: printf("F6 key");break;
case 0x0041: printf("F7 key");break;
default: break;
};
};

}

8. [c语言]检测 2种键盘输入,这样行不行呢

scanf返回的是你正确输入变量的数目,如果你输入hello 0 a 0
那么word就得到了正确的值,row也得到了正确的,col得到了错误的,那么后面的orientation就得不到值了,那么scanf的返回值是2.
如果只有你所说的这两种输入,而没有其他错误的输入的话,你的程序的逻辑是可以的

9. 如何设计2个按键同时按的键盘扫描C程序

1、读键程序:读P1。
内容对应+、-、TH/TL。
计次数识别TH/TL的长按和短按。
还需要考虑一个设定结束的考虑。
或者长时间无按键,视为设定完成。
2、显示程序:建议另一个定时中断中显示TH、TL的被设定值。
3、定时中断程序:通过IO指示灯翻转

10. C语言:我用if判断两个按键来进入模式1和模式2,如何用第三个按键来重

voidchoose()
{
while(1)
{
chooseinit();
while(1)
{
rd=0;
.....
if(s3==0)
{
break;
}
.....
}
}
}