|
发表于 2023-3-13 17:07:37
|
显示全部楼层
本楼为最佳答案
这个问题可能是因为当cin输入的不是整数时,会出现错误并将输入流标记为错误,导致下次输入时无法读取正确的值。
为了解决这个问题,你可以在输入之前进行一些检查,例如判断输入是否为整数,如果不是,清空输入流并忽略该输入。可以尝试修改您的代码如下:
- #include <iostream>
- #include <limits> // 需要引入limits库
- using namespace std;
- int main() {
- int select = 0;
- while (true) {
- cout << "请输入一个整数:" << endl;
- if (cin >> select) {
- // 输入成功
- break; // 退出循环
- } else {
- // 输入失败
- cout << "无效输入,请输入一个整数。" << endl;
- cin.clear(); // 清空输入流
- cin.ignore(numeric_limits<streamsize>::max(), '\n'); // 忽略当前输入行
- }
- }
- cout << "你输入的整数是:" << select << endl;
- return 0;
- }
复制代码
这样就可以避免cin输入字符导致死循环的问题了。 |
|