嘿所有我在过去几天都曾多次问过这个问题,但我只是不明白......我基本上想要在后台执行Beep命令的while循环,而用户可以与可用的案例陈述互动(只有一个显示......还有其他人)....我一直被阻止,每当我想要发出嘟嘟声不断发出声音时,我会阻止其余的程序...我必须使用Beep所以请不要建议任何其他功能..
这是一个示例代码......
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循环和Beep命令....这就是我所说的Beep(x)
int Beep(int y)
{
return y;
}
所以基本上我试图在我当前的cpp文件之外调用一个函数来比较x和y,并返回y等同于x ...我认为这可能会避免阻塞但它不会...
答案 0 :(得分:3)
你的while循环蜂鸣声不起作用,_getch
阻塞。所以它会阻止,直到有一个角色。
根据您所使用的平台,您需要kbhit
之类的内容(如果您使用google,则可以找到其他平台的替代方案)。即它不是标准的C功能和平台特定的。
kbhit
将返回true或false,具体取决于是否有字符。
所以你可以这样做:
while(!key_is_quit(ch))
{
Beep();
if(kbhit())
{
ch = getch();
// switch....
}
}