最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
ShineWinsu8 小时前
对于C++:C++11中lambda、function、bind的解析码匠许师傅8 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值旖旎夜光9 小时前
LeetCode 3:无重复字符的最长子串(滑动窗口) —— 题解汉字萌萌哒9 小时前
2024CSP-J入门级C++真题详解hy.z_77710 小时前
【C++】13. 继承汉字萌萌哒10 小时前
2019CCF-CSP入门级C++试题解析2401_8906034010 小时前
C++ 继承果果燕11 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数老洋葱Mr_Onion12 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析布莱克60512 小时前
理解 C/C++ 中的 void* 指针