最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
阿猿收手吧!几秒前
【C++】C++原子类型隐式转换解析HL_风神1 分钟前
C++设计模式学习-工厂方法模式量子炒饭大师2 分钟前
【C++入门】—— 【什么时候需要用到深拷贝】C++的类中何时需要用到深拷贝?保姆级别带你罗列所有可能!明洞日记3 分钟前
【软考每日一练026】软件工程深度解析:软件开发方法学的分类与应用实战明洞日记9 分钟前
【软考每日一练028】软件工程考点:螺旋模型与构件组装模型深度解析.小墨迹11 分钟前
开源的自动驾驶框架阿猿收手吧!14 分钟前
【C++】深入解析C++内存序:性能与正确性平衡晨非辰15 分钟前
Linux包管理器速成:yum/apt双精要/镜像源加速/依赖解析30分钟通解,掌握软件安装的艺术与生态哲学Bella的成长园地10 小时前
面试中关于 c++ async 的高频面试问题有哪些?彷徨而立10 小时前
【C/C++】什么是 运行时库?运行时库 /MT 和 /MD 的区别?