QT C++的QDataStream的大坑

使用QDataStream 序列化与反序列化遇到的一个大坑,折腾了我一两天。
诡异的是前面的一部分结果可以正确序列化,到了后面就开始不正确。不能正确的反序列化。
导致序列化后的文件,一部分正确,一部分又不正确。
反复调试,反复试各种数据格式,依然不正确。
后来再看前面的代码,才发现错误的根源在于,打开文件时,犯了低级个错误,使用了QFile::text 属性
这个问题太隐晦了。如果是都不对还好,最坑的是前面的对,后面又不对。
记录一下。

Deepmind开发了哪些开源的AI项目
python 的statsmodels库如何使用,有哪些功能
R语言和python语言的区别在什么地方,各自的应用场景是什么
python的Scapy解析TTL字段的值
python如何开发一个端口转发工具
python加PyQT如何开发一个端口扫描工具
python如何开发一个截图工具
python的pytables库如何使用
python 读写HDF5
python 的pickle库如何使用
morris蠕虫病毒
python的scipy提供什么功能
如何给OpenAI的模型增加股票数据进行训练
python如何计算隐含波动率
一个好的编程接口需要具备哪些要素
python如何计算三体运行问题
python模拟算盘的计算过程
在进行股票统计研究中,有很多因子,如何屏蔽其他因子的影响,只研究一个因子的影响大小呢
如何用科大讯飞接口进行语音识别接口
python 如何用科大讯飞接口进行语音合成

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QDataStreamQt 框架中的一个类,用于实现将数据流序列化和反序列化。它可以将数据在不同平台和不同字节顺序之间进行转换,以便实现跨平台的数据通信。 QDataStream 支持多种数据类型,包括整型、浮点型、字符串、字节数组等,可以使用 << 和 >> 操作符将数据写入或读取出来。同时,QDataStream 还支持自定义类型的序列化和反序列化,只需要在自定义类型中重载 << 和 >> 操作符即可。 下面是一个简单的示例代码,演示了如何使用 QDataStream 将一个字符串写入文件中,并读取出来: ```c++ #include <QDataStream> #include <QFile> int main() { QFile file("test.txt"); file.open(QIODevice::WriteOnly); QDataStream out(&file); out.setVersion(QDataStream::Qt_5_15); // 设置数据版本号 QString str = "Hello, world!"; out << str; // 将字符串写入文件中 file.close(); file.open(QIODevice::ReadOnly); QDataStream in(&file); in.setVersion(QDataStream::Qt_5_15); // 设置数据版本号 QString readStr; in >> readStr; // 从文件中读取字符串 file.close(); qDebug() << readStr; return 0; } ``` 以上代码中,我们首先创建了一个 QFile 对象,并打开了它以便写入数据。接着,我们创建了一个 QDataStream 对象,将其与 QFile 关联起来,并设置了数据版本号。然后,我们将一个 QString 对象写入到文件中。 接下来,我们重新打开了文件,创建了一个新的 QDataStream 对象,并设置了数据版本号。然后,我们从文件中读取了一个 QString 对象,并将其输出到控制台上。 需要注意的是,写入和读取数据时,数据版本号必须一致,否则可能会导致数据无法正确读取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

openwin_top

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值