如何在我的代码中修复无穷循环?我认为它跳过了第二个CIN,因此它一直在循环
How to fix the infinity loop in my code? I think it skips the second cin so it keeps looping
如果我的输入不是int,它将给出一个无限的循环,我认为它跳过了第二个CIN,但我不知道该如何修复。
cout << "Number of days : ";
int days;
cin >> days;
while(!cin){
cout << "Invalid";
cin >> days;
}
当operator>>
无法解析输入时,它将流置于错误状态,您需要在可以再次从流中阅读之前,需要明确清除,例如:
cout << "Number of days : ";
int days;
while (!(cin >> days)) {
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
cout << "Invalid";
}
相关文章:
- 使用 std::istream_iterator 时,它似乎跳过了空文件行 - 如果可能的话,如何避免这种情况?
- C++ For Loop在过程中被跳过了.如何解决?
- C++跳过了辛线
- 如何在我的代码中修复无穷循环?我认为它跳过了第二个CIN,因此它一直在循环
- QT Qtimeline跳过了第一个框架
- 为什么循环卡住了
- 输入后,我的程序似乎跳过了第一个IF语句,直接转到ELSE
- C RLE BMP压缩跳过了最后一个字节
- 提升单元测试似乎跳过了应执行的代码
- C 将数据读取到一个结构,但它跳过了我的一个获取线,使该元素空白
- 为什么我的程序跳过了一个步骤
- 当我采用测试用例数 = 1 时,我的程序终止.其他明智的是,它给出了正确的答案,但跳过了最后一个测试用例
- 为什么我的代码跳过了这个循环
- 请解释:在 for 循环之后跳过了行
- C++编译器似乎跳过了代码行
- 如何计算循环执行了多少次?C++
- 跳过了 int* 的琐碎分配
- C++ 为什么我的循环中断了
- GLSL交错似乎在3DTV上甚至跳过了行
- 为什么while循环被跳过了