嘿,在过去的几天里,我问过很多次这个问题,但我就是不明白…我基本上想让Beep命令的while循环在后台执行,而用户可以与可用的case语句交互(只有一个显示…还有其他的)…我一直被阻止,每次我想让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的等价物…我想这可能会避免阻塞,但它没有。。。
最佳答案
你的while循环哔哔声不起作用,_getch
正在阻塞。所以它会一直阻塞直到出现一个角色。
根据你所处的平台,你需要类似kbhit
(如果你用谷歌搜索,你会找到其他平台的替代品)。ie它不是标准的C功能和特定平台。kbhit
将返回true或false,具体取决于是否有字符。
所以你可以:
while(!key_is_quit(ch))
{
Beep();
if(kbhit())
{
ch = getch();
// switch....
}
}
关于c - 我如何停止封锁?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15670616/