我正在尝试制作一个包含嘟嘟声的程序。我在 32 位 Windows Vista 上工作。我正在使用在 GNU 编译器上运行的 Code::Blocks IDE。我的示例代码是 -
#include <stdio.h>
#include <windows.h>
#include <dos.h>
int main(void)
{
Beep(750, 300);
printf("\n \n \t This is a dummy program for Beep.");
getch();
return 0;
}
在 Internet 上我读到我们也可以在 printf 中使用\a 来发出哔声。我试过了,但没有用。我检查了我的扬声器和声卡。一切都很完美,但我没有听到哔哔声。即使我在示例代码中显示的方法也不起作用。
最佳答案
C 标准 recommends将 '\a'
写入标准输出会产生可听或可见的警报信号,但如果重定向标准输出,它将不起作用。同样,一些较新的计算机缺少 Windows Beep()
和某些终端所依赖的 PC 蜂鸣器。要使 Windows PC 在桌面应用程序中播放警报声音,您可以调用 Windows 特定的 MessageBeep
函数,它“异步”播放声音(在您的程序继续运行时在后台播放)。用户可以在声音控制面板中配置与这四个值中的每一个关联的声音。
#include <windows.h>
/* Include one of these in a function */
MessageBeep(MB_OK); /* play Windows default beep */
MessageBeep(MB_ICONINFORMATION); /* play asterisk sound */
MessageBeep(MB_ICONQUESTION); /* play question sound */
MessageBeep(MB_ICONWARNING); /* play warning sound */
MessageBeep()
在 User32.dll
中定义,因此如果这给您带来链接错误,请确保您链接到相应的导入库。在 MinGW GCC(Code::Blocks 中的编译器)中,将 -lUser32
添加到传递给链接器的库列表中。
关于c - 如何在 Windows 上用 C 语言发出哔声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29493837/