今天,当我编写我的一些代码时,我在将缓冲区打印到屏幕时遇到了哔哔声。这是产生哔哔声的神秘字符:''我不知道你是否能看到它,但是当我尝试这样打印时,我的电脑会发出哔哔声:
cout<<(char)7<<endl;
另一个有趣的地方是“哔”不是来自我的机载蜂鸣器,而是来自我的耳机/扬声器
这只是我的电脑还是 cout 功能有问题?
编辑:
但是为什么打印这个字符会产生哔声呢?这是否意味着我可以通过 cout 函数发送其他此类字符以产生不同的效果?
0x7 是产生“哔”声的 ASCII 字符。这是一个不可打印的字符。以下是 ASCII 字符及其代码的完整列表:http ://www.asciitable.com/
编辑:声音可以用于真正的混合事物。但是,您不能通过发送其他数据来真正产生其他效果。在链接上方的表格中,0x20(十进制 32)以下列表中的任何内容都是不可打印的字符。根据数据的实际输出位置,它们可能会产生不同的效果。
基本上,您可以编写一个循环来输出 0-(您希望停止的任何数字)来进行实验,看看您能得到什么。
在 ASCII 中,字符 7 是“响铃”字符,它向终端发出信号,表明它应该发出哔哔声。
编辑:要回答您的后续问题,这实际上只是出于历史原因。旧的电传终端需要一种方法来提醒操作员收到的消息,因此使用了铃声。铃声字符告诉终端响铃而不是打印字符。
现代终端仿真器基本上做同样的事情,尽管它们通常可以选择用视觉铃声代替声音铃声。
char 7 是 BELL 的 ASCII 码。将此字符写入控制台会导致计算机发出哔哔声。这是完全正常的。
聊天 7 实际上是一个“哔”字符而不是屏幕字符。虽然有时文档可能会显示一个字符,但它通常不是您可以直观呈现的东西。