【问题标题】: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 通过登录提示破坏了一切。

标签: c++ audio


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      因为

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多