a(警报和哔声)转义序列字符在 C 语言中不起作用

Posted

技术标签:

【中文标题】\a(警报和哔声)转义序列字符在 C 语言中不起作用【英文标题】:\a (Alarm and beep) escape sequence character not working in C language 【发布时间】:2020-08-13 03:36:33 【问题描述】:

我不知道为什么\a 不起作用。我的代码正在运行并显示在终端中。我的代码:

#include <stdio.h>

int main()

    printf("hello world\a");
    return 0;

我的 IDE:Visual Studio 代码

我的编译器:Mingw gcc

【问题讨论】:

请告诉您如何运行代码。也许即使是截图也不错。 【参考方案1】:

\a 的行为取决于您使用的环境/终端。

我的猜测是 Windows 没有实现它,或者它可能由于某种原因被禁用。除非您使用播放特定声音的特定于平台的 API,否则您无能为力。

见How to make a Beep sound in C on Windows?

【讨论】:

conhost.exe(这是 cmd 和 powershell 连接的控制台)确实支持哔声。在 powershell 中尝试 echo "`a"、echo [char]7cmd /c "echo $([char]7)",你会听到声音。或者在cmd中输入echo 然后Ctrl+G或者Alt+7你会看到同样的效果 @phuclv 感谢您提供详细信息!自从我使用 Windows 以来已经有一段时间了。我记得很多年前在那里听到过哔哔声,但我不确定它是来自终端还是默认情况下仍然启用。无论如何,依靠\a发出声音并不是一个好主意,所以我决定链接另一个问题。 我认为现代主板没有蜂鸣器,因此现代版本的 Windows 将使用扬声器。太糟糕了,蜂鸣器时代是一些重大的怀旧之情。 (真正的计算机在启动时应该听起来像 BEEP beep-beep-beep-BEEP BEEP。)

以上是关于a(警报和哔声)转义序列字符在 C 语言中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

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

c语言中不按转义字符处理是啥意思

JavaScript 警报在 Firefox 6 中不起作用

警报和声音在博览会推送通知中不起作用

c++ - 哔声不起作用(Linux)

C ++哔声不起作用