最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
黑不溜秋的14 分钟前
C++ 设计模式 - 策略模式Dream it possible!2 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)柠石榴3 小时前
【练习】【回溯No.1】力扣 77. 组合王老师青少年编程3 小时前
【GESP C++八级考试考点详细解读】数巨小码人3 小时前
QT SQL框架及QSqlDatabase类澄澈天空4 小时前
C++ MFC添加RichEditControl控件后,程序启动失败Lzc7745 小时前
C++初阶——简单实现vector一个小白15 小时前
C++——list模拟实现程序员老舅6 小时前
C++ Qt项目教程:WebServer网络测试工具靡不有初1116 小时前
CCF-CSP第18次认证第一题——报数【两个与string相关的函数的使用】