为什么每当我打印C++代码的字符时,我的终端都会发出哔哔声?
我是 C++ 编程的初学者。最近在我的 C++ 书中有一个快速练习可以打印一组从a到z. 我在 Visual Studio 2019 中输入了以下代码。
char alphabet = 0;
while (alphabet < 130)
{
cout << char(alphabet + 1)<<"n";
++alphabet;
}
我可以理解为什么我的代码打印出奇怪的字符和符号,因为我选择了值从 1 到 130 的 ASCII 字符。但是,真正的问题是我的终端每次都会产生哔声,即使在打印所有字符之后也是如此。我知道哔哔声是 ASCII 字符集的一部分,但它只是字符 7。但在我的情况下,终端会持续发出哔哔声,直到我从任务管理器中杀死可执行文件。请告诉我出现此类问题的原因,并且请不要说此代码打印的次数超过ato z。我只是选择一个随机数,所以我得到的字符a到z终端。我在 Windows 7 上运行此代码,所以如果操作系统与它有关,请告诉。
回答
这种情况
while (alphabet < 130)
始终评估为真,因为该char类型的范围通常为 [-128, 127]。当alphabet值为 127 并递增 1 时,它将环绕并具有值 -128。因此,您的程序尝试以某种方式打印所有这些值。正数对应于 ASCII 值,其中值 7 指示终端发出哔哔声。