我需要编写一个程序,要求您输入两个整数,然后输出这两个相同的整数,但如果您输入“|”,程序就会结束。
这就是我所拥有的,对我来说它应该可以工作,但不幸的是它没有。
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int var1 = 0;
int var2 = 0;
while(1)
{
cout << "Please enter two numbers.\n";
cin >> var1;
cin >> var2;
if(var1 == '|')
break;
else
{
if(var2 == '|')
break;
else
{
cout << var1 << ' ' << var2 << '\n';
}
}
}
}
我确定这是我遗漏的一些简单概念,但显然我们将不胜感激任何帮助。
最佳答案
当你读取一个整数时,用户输入像 |
只会导致一个(无声的)错误,这会放置 cin
处于错误模式。
在错误模式被清除之前,进一步的输入操作将被忽略,因此您将陷入无限循环。
而是使用 std::getline
将用户输入读取为字符串来自 <string>
header 。检查输入行是否以数字或“|”开头。如果是数字,使用例如转换为整数std::stoi
.
无限循环的语言内置语法是for(;;)
.它的实际优势是 Visual C++ 不会发出有关常量条件表达式的愚蠢警告。
关于c++ - 如何在 int 输入失败时跳出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26008616/