#include <iostream>
#include <sstream>
#include <string>
#include <cctype>
using namespace std;
int main(){
string str; //Store a number
int i=0; //Spit out the number
cout << "Enter a number: ";
while(getline(cin, str)){
stringstream ss(str);
if (str.size()==0)
cout <<"\nPlease enter a valid number: ";
if (isdigit(str[0])==false)
cout <<"\nPlease enter a valid number: ";
else if (ss >> i && ss.eof())
break;
else
cout <<"\nPlease enter a valid number: ";
}
if (cin) {
cout << "\nThe value stored in string str was: " << i;
cin.get();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNjdHlwZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CglzdHJpbmcgc3RyOyAvL1N0b3JlIGEgbnVtYmVyCiAgICBpbnQgaT0wOyAvL1NwaXQgb3V0IHRoZSBudW1iZXIKICAgIAogICAgY291dCA8PCAiRW50ZXIgYSBudW1iZXI6ICI7CiAgICAKICAgIHdoaWxlKGdldGxpbmUoY2luLCBzdHIpKXsKCXN0cmluZ3N0cmVhbSBzcyhzdHIpOwogICAgICAgIGlmIChzdHIuc2l6ZSgpPT0wKQogICAgICAgICAgICBjb3V0IDw8IlxuUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyOiAiOwogICAgICAgIGlmIChpc2RpZ2l0KHN0clswXSk9PWZhbHNlKQogICAgICAgICAgICBjb3V0IDw8IlxuUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyOiAiOwogICAgICAgIGVsc2UgaWYgKHNzID4+IGkgJiYgc3MuZW9mKCkpCiAgICAgICAgICAgIGJyZWFrOwoJZWxzZQogICAgICAgICAgICBjb3V0IDw8IlxuUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyOiAiOwogICAgfQogICAgaWYgKGNpbikgewogICAgCWNvdXQgPDwgIlxuVGhlIHZhbHVlIHN0b3JlZCBpbiBzdHJpbmcgc3RyIHdhczogIiA8PCBpOwogICAgCWNpbi5nZXQoKTsKICAgIH0KIAlyZXR1cm4gMDsKfQ==