函数如sscanf
返回成功读取项目的数量,这对于错误检查很有用,例如下面的代码将打印"失败",因为sscanf将返回3(读取1,2,3,但"text"不是数字) .
是否QTextStream
提供了错误检查的等效方法?
const char *text = "1 2 3 text";
int a, b, c, d;
if (4 != sscanf(text, "%d %d %d %d", &a, &b, &c, &d))
printf("failed");
QString text2 = text;
QTextStream stream(&text2);
stream >> a >> b >> c >> d; // how do I know that d could not be assigned?
Run Code Online (Sandbox Code Playgroud)
您可以通过调用以下方式查询流的状态stream.status()
:
if (stream.status() == QTextStream::Ok)
{
// succeeded
}
else
{
// failed
}
Run Code Online (Sandbox Code Playgroud)