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)

参考博客:

posted @ 2024-05-27 16:56  RioTian  阅读(39)  评论(0编辑  收藏  举报