打印数字 7 时停止计算机发出哔哔声

Stop computer beeping when printing the number 7

我正在向控制台打印一堆 ascii 字符作为二进制数字的表示,但是每当它向控制台打印数字 7 时,windows 就会发出哔哔声。 在网上看,我可以看到有人在谈论 ascii 7 发出噪音,但我似乎无法在代码中找到禁用它的位置。

for (size_t i = 0; i < 1160; i++)
{
    std::cout << "\n" << (char)decimalarray[i];
}

当 UIN8 数组中的值为 7 并且我尝试将该值打印为字符时会发生这种情况。 打印 (int)decimalarray[1157] 输出数字 7 打印 (char)decimalarray[1157] 除了发出嘟嘟声什么都不输出

编辑:如果有一种方法只写可打印字符,那可能是理想的。不容易在值中进行硬编码,因为程序使用正常执行中的每个 ascii 字符。

有人可以帮忙吗?谢谢

Ascii 字符 0x7 或 Bell 的目的是发出恼人的哔哔声。要禁用它,需要在终端或 OS 首选项中找到适当的控件,例如 Windows Beep Properties。

代码 7 是铃声。它就是这样做的。

要禁用它,您有 2 个选择。

  • 更改终端的配置或OS(让它保持静音)。
  • 在代码中添加条件,以跳过此字符。

要执行条件:使用 isprint

例如

#include <ctype.h>
#include <iostream>

int main(){
    int c =7;
    
    if (isprint(c))
        std::cout <<'\n' << static_cast<char>(c);
}