【问题标题】:Strange beep when using cout使用 cout 时发出奇怪的哔声
【发布时间】:2011-06-09 18:07:49
【问题描述】:

今天,当我编写我的一些代码时,我在将缓冲区打印到屏幕时遇到了哔哔声。 这是产生哔哔声的神秘字符:'' 我不知道你能不能看到它,但是当我尝试这样打印时,我的电脑会发出哔哔声:

cout<<(char)7<<endl;

另一个有趣的地方是“哔”不是来自我的机载蜂鸣器,而是来自我的耳机/扬声器

这只是我的电脑还是 cout 功能有问题?

编辑:

但是为什么打印这个字符会产生哔声呢?这是否意味着我可以通过 cout 函数发送其他这样的字符来产生不同的效果?

【问题讨论】:

  • 我在等待妙语... ASCII 码 7 是系统提示音 (Control-G)。
  • 您的声卡配置中可能有“播放系统通过扬声器发出哔哔声”设置。如果您将其关闭,您应该会听到原本应该听到的 0x7,这是一种令人不安的响亮锯齿波,来自您的 PC 制造商能找到的最便宜的扬声器。

标签: c++ cout beep


【解决方案1】:

0x7 是产生“哔”声的 ASCII 字符。这是一个不可打印的字符。以下是 ASCII 字符及其代码的完整列表:http://www.asciitable.com/

编辑:声音可以用于真正的混合事物。但是,您不能通过发送其他数据来真正产生其他效果。在链接上方的表格中,0x20(十进制 32)以下列表中的任何内容都是不可打印的字符。根据数据的实际输出位置,它们可能会产生不同的效果。

基本上你可以写一个循环来输出 0-(无论你想停在什么数字)来试验,看看你能得到什么。

【讨论】:

    【解决方案2】:

    在 ASCII 中,字符 7 是“响铃”字符,向终端发出信号提示它应该发出哔哔声。

    编辑:要回答您的后续问题,这实际上只是出于历史原因。旧的电传打字终端需要一种方法来提醒操作员收到的消息,因此使用了铃铛。铃声字符告诉终端响铃而不是打印字符。

    现代终端模拟器基本上做同样的事情,尽管它们通常可以选择用视觉铃声代替声音铃声。

    【讨论】:

      【解决方案3】:

      chat 7 实际上是一个“哔”字符而不是屏幕字符。虽然有时文档可能会显示一个字符,但它通常不是您可以直观呈现的。

      【讨论】:

        【解决方案4】:

        char 7 是 BELL 的 ASCII 码。将此字符写入控制台会导致计算机发出哔哔声。这是完全正常的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-03
          • 2021-05-08
          • 2018-08-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多