如何使用“\ a”转义字符产生哔声?

如果我编写以下程序,则运行代码时不会发出蜂鸣声。

#include  int main() { printf("\a"); return 0; } 

你能告诉我如何使用\a使用C程序产生哔声吗?

你的程序唯一错误( 一半错误 )是main签名。

要100%可移植,它应该是int main(void)int main(int argc, char **argv)或等效的: int main()不等效。


我也会打印一个'\n' ,或者刷新输出缓冲区,而不是依赖于运行时为我自动刷新所有缓冲区,但是你的程序应该按原样响起。 如果不是问题在别处,而不是C

 #include  int main(void) { printf("\a\n"); return 0; } 

我同意@Steve Jessop。 人们会竭尽全力让他们的电脑保持安静。

在Windows中:作为“\ a”的替代,您可以使用WinAPI的Beep命令。 如果您使用的是Windows 7,则可能无法正常工作。

哔声function(Windows)

如果您使用的是Windows,那么Windows版本会发出哔哔声。 其中一些启用并且工作正常,但某些Windows版本没有。 在某些窗口中,如果你有一个内部主板扬声器,它就适用于这种情况。 但是其他一些窗户,它没有内部主板扬声器,直接从声卡(这将是很好的!)工作正常。

如果你很幸运,并使用适当的Windows版本,beep / Beep / printf(“\ a”)将起作用(在内置扬声器上(如果有),或通过声卡最佳情况)。 但是,如果您使用其他Windows版本,它将无法正常工作。 如果你的电脑没问题,你的朋友/家人的电脑会保持沉默,他/她会认为你写了一个糟糕的节目:-但不是。

我的建议是,您应该使用库来获取音频。 它简单,跨平台,并且它将始终在所有计算机等工作。例如,Allegro_v4,Allegro_v5,SDL(简单DirectMedia层)或类似的东西。 这些图书馆可以与OpenGL / DirectX一起使用,通过这些图书馆,您可以加载图像,播放video等等。 原生OpenGL / GLUT / DirectX无法做到这一点。

请列出您的操作系统,如何运行代码,以及您的计算机是否有蜂鸣器。

如果你使用Windows,也许这个Q&A 如何在Windows上用C发出哔声? 会帮助你。

如果您使用GUI桌面Linux发行版,像gnome-terminal或xfce4-terminal这样的终端模拟器会有一个首选项选项来检查。 然后,确保你的扬声器工作。

以下代码适合我:

 /* name: bell.c * run: gcc bell.c && ./a.out */ #include  int main(void) { printf("\a"); return 0; } 

顺便说一下,你的代码不是问题。

我通常使用另一种方式来获得它在Windows 7上100%工作的哔声。

  int x=7; //7 is beep sound other numbers may show emoji and characters printf("%c",x); 
 #include #include int main() { Beep(1000, 1000); /* you can use any number starting from 250, but make sure you use it both times return 0; }