我如何阻止阻止?

时间:2013-03-27 22:18:32

标签: c function block

嘿所有我在过去几天都曾多次问过这个问题,但我只是不明白......我基本上想要在后台执行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 ...我认为这可能会避免阻塞但它不会...

1 个答案:

答案 0 :(得分:3)

你的while循环蜂鸣声不起作用,_getch阻塞。所以它会阻止,直到有一个角色。

根据您所使用的平台,您需要kbhit之类的内容(如果您使用google,则可以找到其他平台的替代方案)。即它不是标准的C功能和平台特定的。

kbhit将返回true或false,具体取决于是否有字符。

所以你可以这样做:

while(!key_is_quit(ch))
{
  Beep();
  if(kbhit())
  {
    ch = getch();
  // switch....
  }
}