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

时间:2010-10-02 12:06:29

标签: c

如果我编写以下程序,则运行代码时没有发出哔声。

#include <stdio.h>
int main()
{ 
    printf("\a");
    return 0;
 }

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

6 个答案:

答案 0 :(得分:3)

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

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


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

#include <stdio.h>
int main(void)
{
    printf("\a\n");
    return 0;
}

答案 1 :(得分:1)

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

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

Beep Function (Windows)

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

    int x=7; //7 is beep sound other numbers may show emoji and characters
    printf("%c",x);

答案 4 :(得分:0)

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

如果您使用Windows,则此问题解答How to make a Beep sound in C on Windows?可能会对您有所帮助。

如果使用GUI桌面Linux发行版,则诸如gnome-terminal或xfce4-terminal之类的终端仿真器都需要检查首选项选项。然后,确保您的扬声器正常工作。

以下代码对我来说效果很好:

/* name: bell.c
 * run: gcc bell.c && ./a.out
 */

#include <stdio.h>

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

顺便说一句,您的代码不是问题。

答案 5 :(得分:-2)

#include<stdio.h>
#include<windows.h>

int main()
{   
    Beep(1000, 1000); /* you can use any number starting from 250, but make sure you use                           it both times


    return 0;

}