我是一个用C++编程的初学者。最近,在我的C++书中有一个快速练习,可以将一组字符从a打印到z。我在Visual Studio 2019中输入了以下代码。
char alphabet = 0;
while (alphabet < 130)
{
cout << char(alphabet + 1)<<"\n";
++alphabet;
}我可以理解为什么我的代码打印奇怪的字符和符号,因为我选择了值从1到130的ASCII字符。然而,真正的问题是,我的终端每次都会发出蜂鸣声,即使在打印完所有字符之后也是如此。我知道嘟嘟声是ASCII字符集的一部分,但它只是字符7。但在我的例子中,终端不断地发出嘟嘟声,直到我从任务管理器中删除可执行文件。请告诉我为什么会有这样的问题,请不要有问题说,这段代码是打印超过a到z。我只是选择了一个随机数,这样我就可以在终端中获得字符a到z。我在Windows7上运行这段代码,所以如果操作系统对它有影响,请告诉我。
发布于 2021-08-21 15:19:27
这种情况
while (alphabet < 130)始终计算为true,因为char类型的范围通常为-128,127。当alphabet的值为127并递增1时,它将取整并具有值-128。因此,您的程序试图以某种方式打印所有这些值。正数对应于ASCII值,其中值7指示终端发出蜂鸣声。
https://stackoverflow.com/questions/68874212
复制相似问题