我正在尝试构建一个包含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 << "\n\n" << endl;
}
return 0;
}
我使用visual studio和我的linux框编译并运行了我的两个窗口框,当填充了中断要求时,我的终端/ cmd无限地填充无限循环。我在很多地方搜索过,无法找到明确的答案。我试过让while无限并将break参数放在里面无济于事。我有一种感觉,它将垂直符号放在一个整数中,但我已经让它的循环运行良好。我要求的教训是,我的解决方案是“好的”,但我想知道一种干净/标准的方法。
答案 0 :(得分:0)
无限循环是因为您从不检查输入失败。在行cin >> x >> y
之后添加:
if ( !cin )
break;
请注意x
和y
是整数,因此它们只能存储数字。当您编写x != '|'
时,您正在测试该人是否已成功输入与|
的ASCII字符代码匹配的数字。如果您希望能够检查该人输入的每个字符,请改为输入string
。