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

Par*_*ita 11 c

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

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

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

pmg*_*pmg 2

你的程序唯一错误(一半错误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;
}
Run Code Online (Sandbox Code Playgroud)

  • 给定 `int main(void) { /* ... */ }` ,递归调用 `main(42)` 是违反约束的。鉴于 `int main() { /* ... */ }`,它不是,尽管它确实有未定义的行为。我想说这使得它们不相等。另一方面,如果 `int main() { /* ... */ }` 无效,那么就不可能编写在 ANSI 之前和 ANSI C 中都有效的无参数主程序,我确信这一点这不是本意。实际上,我从未听说过 C 编译器会拒绝或以其他方式错误处理 `int main()` ——但我仍然更喜欢 `int main(void)`。 (2认同)