gpt4 book ai didi

c++ - 如何知道 QDataStream 不能反序列化某些东西?

转载 作者:行者123 更新时间:2023-11-30 04:55:27 34 4
gpt4 key购买 nike

请考虑以下来自 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无法将文件内容反序列化为QStringqint32以及如何处理此类反序列化错误在 QDatastream 中?

最佳答案

根据官方文档,您可以(并且应该)使用 Read Transactions :

  in.startTransaction();

QString str;
qint32 a;

in >> str >> a; // try to read packet atomically

if(in.commitTransaction())
{
// read is ok, check the data you had read
}
else
{
// wait for more data or show unknown error
}

如果你有一个文件作为 IO 设备,你可以在没有事务的情况下读取,但你必须手动检查是否有必要的数据量可用。使用 QDataStream 时,您应该确定数据的顺序和组成。

关于c++ - 如何知道 QDataStream 不能反序列化某些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53044379/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com