最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
All for pursuit.23 分钟前
【位运算-3】136.只出现一次的数字架构师伯子明23 分钟前
QT+OpenGL(3):FBO离屏渲染C++ 老炮儿的技术栈2 小时前
std::atomic 是什么All for pursuit.2 小时前
【完结】LeetCodeHot100题 详细解题过程及代码汇总重生之小比特3 小时前
【算法拾光】双指针|移动零 + 复写零多弗朗皮卡丘3 小时前
C++异常mengzhi啊3 小时前
把数据存入sql数据库。qt,c++。米糕闯编程4 小时前
鱼香ros2(十七)C++小海龟巡逻栈帧之外4 小时前
【C++】红黑树实现程序员老陆4 小时前
C++中同一个回调函数被多个设备并发调用:并发问题不在“函数”,而在“状态”