c++中我需要用户输入一个整数,当用户输入的是小数,英文或者其他字符时...
发布网友
发布时间:3小时前
我来回答
共1个回答
热心网友
时间:3小时前
看代码
int val;
std::cin >> val;
这时,我并不知道,用户输入的是否是int类型。怎么办呢..
通过调用cin对象的其他函数。
当用户输入的内容,不能完成流操作时,cin会产生一个逻辑错误。此时,std::cin.fail() 会返回true。(如果没有逻辑错误,std::cin.fail() 返回false)
代码
int val;
std::cin >> val;
if (std::cin.fail()) {
std::cout << "无效的输入" << std::endl;
}
如果需要用户再次输入内容,就需要额外的代码恢复cin
完整代码
int val;
std::cin >> val;
while (std::cin.fail()) {
std::cout << "无效的输入,请重试" << std::endl;
std::cin.clear();
std::cin.ignore(0xFFFF);
std::cin >> val;
}