我需要检查用户输入的输入类型,如果它不是所需的类型,我应该打印一条错误消息。我的代码是:
int ClassInput::inputInt(QString str)
{
signed int l;
std::cout << str.toStdString();
std::cin>>l;
while(!l)
{
eh.handleError(1);
std::cin>>l;
cin.clear ();
cin.ignore (1000, '\n');
}
return l;
}
但问题是在输入浮点值时它没有打印错误消息。此外,它将进入下一步并执行计算,就像输入正确的输入一样。
有时它会无限打印错误语句。请问谁能更正我的代码?