【发布时间】:2019-04-02 07:39:01
【问题描述】:
请考虑QDataStream 文档中的以下代码片段:
QFile file("file.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file); // read the data serialized from the file
QString str;
qint32 a;
in >> str >> a; // extract "the answer is" and 42
有没有办法知道QDataStream无法将文件内容反序列化为QString和qint32以及如何处理QDatastream中的此类反序列化错误?
【问题讨论】:
-
我喜欢在尝试反序列化之前包含数据的校验和并检查其有效性。通过该检查会大大增加成功反序列化的机会。只是不要使用 Qt 自己的校验和函数,它的 16 位输出相当平庸。
标签: c++ qt deserialization qdatastream