如何让C++忽略不正确的输入
How do I get C++ to ignore incorrect input?
我正在C++中创建一个简单的控制台应用程序,该应用程序包含一个以两个整数为输入的while循环。但是,如果我输入一个不是整数的字符,例如"a",则循环将变为无穷大。我该如何阻止这种情况?
我的代码应该在输入字符值"|"时终止,但它将整数作为输入,我不知道如何解决这个问题。
到目前为止我的代码(试图在输入字符值"|"时结束循环):
int main()
{
int x = 0;
int y = 0;
char c = {x};
char d = {y};
while (c != '|')
{
cin >> x >> y;
// later I will do stuff with x and y
}
system("pause");
return 0;
}
您可以简单地将其添加到while循环中:
if(cin.fail()) {
break;
}
也看看这个答案,它会帮你很多。
你的代码应该是这样的:
int main()
{
int x = 0;
int y = 0;
char c = {x};
char d = {y};
while (c != '|')
{
cin >> x >> y;
if(cin.fail()) {
break;
}
// later I will do stuff with x and y
}
system("pause");
return 0;
}
否则,如果您不想在循环时完全中断,请使用continue
而不是break
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- 对于代码中指定的边界之外的值,对角差算法的输入不正确
- 使用 Get 的 C++ 输入被替换为空格、不正确的数字
- 当我输入分数值时,它返回不正确的结果
- 在具有 64 位 CPU 的 32 位 Win8 上运行 32 位 Orwell Dev-C++ - 输入指针返回不正确
- 计数排序我的输入是1,4,3,1但输出是垃圾值1,1,3输入不正确
- 我的 for 循环第一次正确输入,但第二次不正确,并显示第二个输入的输出。我不明白为什么会这样。
- 使用鞋帮不正确?直到我输入密码
- 如何处理不正确的输入文件
- 不正确的输入和读取
- 如何让C++忽略不正确的输入