QT | 文件读写过程中丢失的 OD OA 问题解决
今天发现 QT 以文本方式 (QIODevice::Text) 写入二进制 0x0A
会出现问题,写入的是一个字节(实际应该是两个字节),结果在 Zed 上看, 显示是2个字节。
明显每个0x0A前都多了个0x0D,导致我的bin文件全部都错位了
期望的效果应该是
原来按照字节流的形式输出文本时,ofstream
会自动将输出的 \n
变成 \r\n
,以适应 WIndows 系统,结果以输出数据的角度看来,这个正常的举动就变成了不可解的“ 0A
变成 0D 0A
”。
file.open(QIODevice::ReadOnly|QIODevice::Text)
//可知上行代码的打开方式为Text,删掉后面的QIODevice::Text就行了
//修改后的代码,QFile和QIODevice是父子关系,这倆的参数在这里通用的
file.open(QFile::ReadOnly)
参考博客: