在不包含任何内容的情况下获得错误声音?

Posted

技术标签:

【中文标题】在不包含任何内容的情况下获得错误声音?【英文标题】:Getting error sound without including any? 【发布时间】:2017-11-23 17:02:43 【问题描述】:

我正在读一本书,目前正在学习指针等,但是当我运行此代码时,我也会听到奇怪的错误声音。它确实有点酷,但我不知道为什么它被称为并且这本书没有说任何关于(可能是因为这本书现在已经相当老了)。当我调用“ErrorMessage”时会发出声音。这是某种复活节彩蛋吗,因为我不记得包含任何音频库?

#include <iostream>

ErrorMessage(char* msg)

    std::cout << "\aError:" << msg << std::endl;


int main()

    char* ep = "Invalid Input";

    ErrorMessage(ep);

    char msg[] = "Disk Failure";

    ErrorMessage(msg);

    ErrorMessage("Timeout");

【问题讨论】:

巨魔程序 101:while(true) std::cout &lt;&lt; '\a'; @PasserBy:是的,这是我们在 1990 年代初期在 PC 世界所做的事情之一,那时 Windows 95 通过登录提示破坏了一切。 【参考方案1】:

当您在 std::cout 文字中键入反斜杠时,您使用了 escape 序列。

\a 是一种非常老式的向终端发送哔声信号的方式(称为 BEL 字符),假设您的控制台(即您用来启动应用程序的东西)支持哔声。

【讨论】:

【参考方案2】:

\aa 代表alert)是 ASCII BEL 字符的编码,如果您的终端软件或硬件支持该功能,它将导致终端铃声在输出时响起。

【讨论】:

【参考方案3】:

因为

 std::cout << "\aError:" << msg << std::endl;

注意\a.\a 是一个转义字符,它是产生该声音的声音警报

【讨论】:

【参考方案4】:

\a 是control character for a bell sound,因此将其打印到std::cout 将产生一个; ErrorMessage() 到底做了什么:

std::cout << "\aError:" << msg << std::endl; // make a beep then print "Error: <msg>"

【讨论】:

以上是关于在不包含任何内容的情况下获得错误声音?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过代码获取 TFS 工作项验证错误消息?

为什么glDrawElments()在不使用任何着色器的情况下工作?

如何在不更改当前 URL 的情况下显示错误页面

将数据附加到波形声音文件而不加载其当前内容

如何在不包含 Windows.h 的情况下获得 DebugBreak 的声明?

如何在不知道 UUID、任何可能获得核心蓝牙或其他方式的情况下检测 iBeacons