打印数字 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);
}
我正在向控制台打印一堆 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);
}