最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
Fuyo_11192 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】Chen_harmony4 小时前
七、STL与string类xxxiugou1234 小时前
C++命名空间与引用全解析BroNekoX5 小时前
我将基于 QtQuick 框架开发的音乐播放器性能做到顶级用户7624117567055 小时前
第十五章 人工智能基础爱写Bug的浮游8 小时前
unique_ptr 零开销的真相与边界xiaoye-duck8 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(下):流式响应实现和测试小小晓.9 小时前
Qt 对话框、QLineEdit 与布局管理实战详解落樱弥城10 小时前
Perf 逐步探查性能缺口并优化坤坤子吖10 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室