【题目讲解】c++怎么判断键盘按下?

        众所周知,在py里判断键盘按下很容易,但很多人不知道c++怎么办,今天就让小编带着大家看看吧:

定义

首先要在前面加上这条代码(如下):

#include
#include
#include
#include
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) 
using namespace std;
int main()
{
}

define后面的名字是可以改的,根据自己喜好。

使用

需要配合if使用(如下):

if(KEY_DOWN('S'))
{cout<<1;
}

使用时键名要加单引号,并且必须是它的大写

这里个大家分享一段关于这个的代码,运用了前面讲的判断:

#include
#include
#include#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std;void color(int a){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}bitset

down;//记录当前键盘按下状态 bitset

pre;//记录前一时刻键盘按下状态void check(char c){//检测某个按键是否按下,按下就改变一下变量if(!KEY_DOWN(c))down[c-'A']=0;else down[c-'A']=1; }void print_letter(char c){if(!down[c-'A'])color(7);else color(112);printf(" %c ",c);color(7); }void print(){system("cls");//清屏print_letter('Q');print_letter('W');print_letter('E');print_letter('R');print_letter('T');print_letter('Y');print_letter('U');print_letter('I');print_letter('O');print_letter('P');printf("\n\n ");print_letter('A');print_letter('S');print_letter('D');print_letter('F');print_letter('G');print_letter('H');print_letter('J');print_letter('K');print_letter('L');printf("\n\n ");print_letter('Z');print_letter('X');print_letter('C');print_letter('V');print_letter('B');print_letter('N');print_letter('M'); }int main(){print();while(1){pre=down;for(int i=0; i<26; i++){check(char('A'+i));}if(down!=pre)print();//检测到按键状态变化再打印Sleep(20);//循环时间间隔,防止太占内存 }return 0; }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部