为什么我的 while 循环会导致无限输出
Why my while loop causes infinite output
我正在尝试构建一个包含 while 循环的小程序:
int main() {
int x = 0;
int y = 0;
while (x != '|' || y != '|') {
cout << "Please enter two numbers: n";
cin >> x >> y;
cout << "You entered: " << x << " and " << y << "nn" << endl;
}
return 0;
}
我在带有Visual Studio和Linux的Windows盒子上编译并运行,当中断要求被填满时,我的终端/cmd像无限循环一样无限填充。我在很多地方搜索过,找不到明确的答案。我尝试使 while 无限并将 break 参数放入其中无济于事。我有一种感觉,这与将垂直符号放在整数中有关,但是我已经有了运行良好的循环。我正在上课要求它,我有"可以"的解决方法,但想知道一种干净/标准的方法。
无限循环是因为您从不检查输入失败。在该行之后cin >> x >> y
添加:
if ( !cin )
break;
请记住,x
和y
是整数,因此它们只能存储数字。当您编写x != '|'
时,您正在测试此人是否成功输入了与 |
的 ASCII 字符代码匹配的数字。 如果您希望能够检查人员输入的每个字符,请改为输入string
。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 在控制台上输出我从文件中读取的整数,将程序插入无限循环
- 当我在循环内打印变量时无限输出
- 为什么输出会进入无限循环
- 我的c ++数组值不想改变,它输出无限循环
- 为什么当用户输入除整数之外的任何内容时,我的程序会无限循环输出?C++
- 我写了一个函数来删除循环链接列表中的第 1 个节点,但输出显示无限次"55 44 33 22 11 99",那么我该如何解决呢?
- 为什么输出是无限的?
- C++ - 无限输出到控制台
- C++ 无限循环读取文件创建重定向命令输出
- 无限循环heisenbug:如果我添加打印输出,它就会退出
- 为什么我的 while 循环会导致无限输出
- 统计计算器输出无限循环
- 为什么这段代码没有给出任何输出?这似乎是一个无限循环
- 读取文本文件获得奇怪的值,获得无限的值输出
- 无法弄清楚为什么这个输出格式化循环是无限的