请帮我优化检查输入值的功能 . 函数返回true并使用link返回发送值,如果输入 - 整数,或者如果输入char,则返回false,字符串(空) . 我认为有两种方法可以加速:消除std :: string的使用或者不使用QString .
bool tryRead(int &v)
{
QString s;
string s1;
cin >> s1;
s = QString::fromStdString(s1);
if (s.isEmpty())
{
cout << "Error! You entered empty string";
return false;
}
bool isNumber = true;
v = ((s.toInt(&isNumber)));
if(isNumber == false)
return false;
return true;
}
2 回答
这就是iostream运营商的用途 . 最小的实现将是:
根据您实际想要完成的内容,您可能需要添加一些额外的健全性检查,错误处理和清除cin .
您可以使用
QTextStream
而不是cin
和cout
.检测到错误后,请务必调用
QTextStream::resetStatus()
来清除错误标志 .