问题描述
我已经在程序中实现了此检查,以确定输入是否为正确的类型,如果不是,则要求重写输入。 如果输入错误,则可以正常工作,但是,如果输入正确,则需要再次编写。如何避免这种情况? (您可以在此处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"; }; }
@H_502_5@解决方法
您没有检查第一个
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