求助,获取键盘按键出问题
  • 板块灌水区
  • 楼主一只大龙猫
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/3/5 13:59
  • 上次更新2023/10/23 22:59:23
查看原帖
求助,获取键盘按键出问题
511907
一只大龙猫楼主2023/3/5 13:59

现在需要实现:

  1. 输出123

  2. 输出输入任意键继续(这里的任意键包括 ctrl 键等)

  3. 程序暂时中止,直到检测到任意键被按下才继续,输出456,并输出输入任意键继续

  4. 程序暂时中止,直到检测到任意键被按下才继续,若这个键是 ctrl 键,输出唱跳rap篮球

  5. 输出789

流程图大致如下:

写出如下代码:

#include<iostream>
#include<windows.h>
#include<conio.h>
using namespace std;
bool key_down(int key_name){
	return (GetAsyncKeyState(key_name)&0x8000)?1:0;
}
void work1(){
	cout<<123<<endl;
	return;
}
void work2(){
	cout<<456<<endl;
}
int main(){
	work1();
	cout<<"输入任意键继续"<<endl;
	while(1){
		if(kbhit())break;
	}
	work2();
	cout<<"输入任意键继续"<<endl;
	while(1){
		if(key_down(17)){//按下ctrl键
			cout<<"唱跳rap篮球"<<endl;
			break;
		}
		if(kbhit())break;
	}
	cout<<789;
}

但实际的运行结果是,在输出123和第一个输入任意键继续后,按下 ctrl 等键不能使程序继续运行;若按下 1 键和 a 键等键,则会直接输出456,第二个输入任意键继续789

求大佬 debug,谢谢了QAQ

2023/3/5 13:59
加载中...