我如何阻止阻挡?
问题描述:
嘿,我在过去几天问过这个问题几次,但我只是不明白它......我基本上想要在后台执行Beep命令的while循环,而用户可以进行交互与可用的案例陈述(只有一个显示..其他人)....我不断被阻止,每次我想要嘟嘟声不断发出声音,我阻止我的程序的其余部分...我必须使用哔声请不要提出任何其他功能..我如何阻止阻挡?
这里是一个示例代码...
while(keypress != 'q' || keypress != 'Q')
{
x = Beep(x);
while (x == 1)
Beep(350,300);
alarm_t current;
keypress = _getch();
switch(keypress){
case 'h':
sprintf_s(current.message,"high alarm");
current.timeOfEvent = time(NULL);
recordEvent(current);
break;
现在...我的问题是与while循环和蜂鸣命令....这里是什么我打电话给哔声(x)
int Beep(int y)
{
return y;
}
所以基本上我试图调用一个函数我目前CPP文件只是比较X和Y之外,并返回是等价于X ...我想这可能避免阻塞,但它不...
答
你的while循环嘟嘟只是不会工作,_getch
阻止。所以它会阻止,直到有一个角色。
根据你的平台,你需要像kbhit
(如果你谷歌,你会发现其他平台的替代品)。即它不是标准的C功能和平台特定的。
kbhit
将根据是否有字符返回true或false。
所以,你可以这样做:
while(!key_is_quit(ch))
{
Beep();
if(kbhit())
{
ch = getch();
// switch....
}
}
'而(!按键= 'Q' &&按键= 'Q'!)' – wildplasser 2013-03-27 22:20:36
导致程序通过蜂鸣堵塞... – 2013-03-27 22:25:50
你”我真的得停止while循环while循环。如果你做得对,你的上层循环速度非常快,以至于如果你只是在没有内部'while'的情况下调用Beep,用户就不会听到太大的差别。 – 2013-03-27 22:26:32