所以我看了这个,我看到的大多数解决方案只确保它是一个输入的数字,然后如果用户输入一个小数值,它只是丢弃小数值,并保持整个数。
基本上我想要它
//ask for integer value
//check for valid integer value
//if anything but an integer value throw an error and loop back to start
答案 0 :(得分:1)
可能有更好的解决方案,但要100%确定用户输入了一个整数值:将整个输入保存到std :: string中。现在通过永远的角色确保它是一个数字(0 ... 9)。通过这种方式,您将检测句点,逗号和所有无数字的内容。
答案 1 :(得分:0)
可能是这样的:
#include<limits>
float x;
int num;
while(true){
if (!(cin >> x)) {
cout << "Not a Real Number" << endl;
// do something
}
else {
num = x;
}
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}