aru*_*rul 11
如果后缀变量cin
是一个数字,并且提供的字符串不是数字,则返回值为false,因此您需要一个循环:
int someVal;
while(!(cin >> someVal)) {
cin.reset();
cout << "Invalid value, try again.";
}
Run Code Online (Sandbox Code Playgroud)
double i;
//Reading the value
cin >> i;
//Numeric input validation
if(!cin.eof())
{
peeked = cin.peek();
if(peeked == 10 && cin.good())
{
//Good!
count << "i is a decimal";
}
else
{
count << "i is not a decimal";
cin.clear();
cin >> discard;
}
}
Run Code Online (Sandbox Code Playgroud)
这也会给出一条错误消息,其中输入 -1a2.0,避免仅将 -1 分配给 i。