如何解决使用std :: cin进行输入验证时出错
我已经在程序中实现了此检查,以确定输入是否为正确的类型,如果不是,则要求重写输入。 如果输入错误,则可以正常工作,但是,如果输入正确,则需要再次编写。如何避免这种情况? (您可以在此处https://godbolt.org/z/KjoTbc找到示例)
#include <iostream>
#include <limits>
int main() {
int input;
std::cin >> input ;
while (!(std::cin >> input)) {
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Please,write an integer number\n";
};
}
解决方法
您没有检查第一个while (!(std::cin >> input))
并运行#include <iostream>
#include <limits>
int main() {
int input;
while (!(std::cin >> input)) {
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Please,write an integer number\n";
}
}
,它无条件地要求输入。
删除第一个未经检查的内容,然后尝试以下操作:
convert mask.png -format "%@" info:
642x646+78+77
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。