最近在编写一个网络功能,需要将一个文件内容传递到客户端并将改内容以文件形式保存下来。由于文件内容是个加密文件且采用了二进制形式于是客户端就采用了QDataStream这个对象来保存文件。粗略的测试下来没有什么问题,可是在获取写入的文件是否发现写入的文件读取出来内容不正确。经过一番折腾最终发现是QDataStream这个对象引起的问题。原来是我在打开文件的时候加上了QIODevice::Text 这个标识引起的,发现加了这个标识后写入文件都会把原来的\0转换成两个字符写入,因此写入的文件内容就无端多一个字符处理,这样在反向解码就会出现问题。这问题一定要牢记下次不用再折腾了。
相关推荐
肆忆_17 小时前
# 用 5 个问题学懂 C++ 虚函数(入门级)不想写代码的星星21 小时前
虚函数表:C++ 多态背后的那个男人端平入洛3 天前
delete又未完全delete端平入洛4 天前
auto有时不auto哇哈哈20215 天前
信号量和信号多恩Stone5 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系蜡笔小马5 天前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解超级大福宝5 天前
N皇后问题:经典回溯算法的一些分析weiabc5 天前
printf(“%lf“, ys) 和 cout << ys 输出的浮点数格式存在细微差异问好眼5 天前
《算法竞赛进阶指南》0x01 位运算-3.64位整数乘法