现在需要实现:
输出123
输出输入任意键继续(这里的任意键包括 ctrl 键等)
程序暂时中止,直到检测到任意键被按下才继续,输出456,并输出输入任意键继续
程序暂时中止,直到检测到任意键被按下才继续,若这个键是 ctrl 键,输出唱跳rap篮球
输出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