最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
_Twink1e19 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程dong_junshuai20 小时前
每天一个开源项目#87 fmt:24.5K Stars 的 C++ 格式化核心大丑哥20 小时前
QT QML 中实现高亮功能雪的季节20 小时前
Multisim14.0的详细中文安装步骤【附安装包】Persistent的粽子!21 小时前
C++:类与对象(二)蒸蒸yyyyzwd1 天前
cpp 选手备战秋招学习笔记 day23.YM.Z1 天前
C++ STL 容器深度剖析:vector 与 list 的模拟实现及对比小白不想画工图1 天前
银河麒麟V10系统安装QT5.12mengzhi啊1 天前
QEventLoop loop配合loop.exec();替代while(1)。电脑cpu占用为0,使用while(1)cpu占用率100%HugoStudio_SWAN1 天前
洛谷 P1319 / P1320 压缩技术——同一枚硬币的正反面