为什么我得到一个无限循环时验证我的用户输入
Why am I getting an Infinite loop when validating my user input?
我正在验证用户输入。如果用户输入的不是整数,那么它应该留在While
循环中。但是,当我给程序一个"w"时,例如,程序只是无休止地打印"请输入整数",我不得不停止程序。
int MAns1 = 0
while (!(cin >> MAns1))
{
cout << "nPlease Enter An Integer: ";
cin.clear();
}
因为您应该测试(cin >> MAns1)
,而不是!(cin >> MAns1)
。我想这样做:
#include<iostream>
using std::cin;
using std::cout;
int main() {
int MAns1 = 0;
for (;;)
{
cout << "nPlease Enter An Integer: ";
cin >> MAnsi;
// did the last read succeed?
if(!cin) {
// it did *not* succeed.
break;
}
}
}
相关文章:
- 过载'operator new'如何导致无限循环?
- C++正则表达式无限循环
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 遍历链表时的无限循环
- 循环链表:无限循环
- 比较两个字符串后卡在无限循环中
- 在做一段时间内检查字符的无限循环
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 可能的无限循环
- 超出 int 的值范围后的无限循环
- 为什么这段代码会导致无限循环?
- 运行无限循环的最小二叉树问题
- 在分配和发布递增循环迭代器时C++无限循环(gcc 错误?
- 连接线程时的无限循环
- 为什么这种方法会进入无限循环?
- 输入验证,需要数字,而不是字符串.代码导致无限循环
- 在将用户输入验证为 int 时陷入无限循环
- 为什么下面的验证代码卡住了?当我输入1时忽略.输入w,进入一个无限循环
- 为什么我得到一个无限循环时验证我的用户输入