c++ cin怎么规范化输入,只允许输入int类型的值
时间: 2024-09-18 20:18:12 浏览: 70
在 C++ 中,如果你想从 `cin` 输入整数并确保用户只能输入整数值,你可以使用循环和条件检查来实现这个功能。下面是一个简单的示例:
```cpp
#include <iostream>
#include <limits>
int main() {
int input;
std::cout << "请输入一个整数: ";
while (!(std::cin >> input)) { // 使用while循环直到成功读入整数
if (std::cin.fail()) { // 检查是否有输入错误,如非数字字符
std::cin.clear(); // 清除错误标志
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 清空缓冲区
std::cout << "输入错误,请输入一个整数: ";
} else if (std::cin.peek() != EOF && !std::isdigit(std::cin.peek())) { // 非数字字符在输入流中
std::cin.clear();
std::cin.ignore(1);
std::cout << "输入错误,请输入一个整数: ";
}
}
std::cout << "你输入的整数是: " << input << std::endl;
return 0;
}
```
在这个例子中,我们使用了 `std::cin.fail()` 来检测是否输入有误,如果失败则清除错误标志并提示用户重新输入。同时,我们会检查下一个待读取的字符是否是数字,如果不是,也会清空缓冲区并请求重新输入。