找回密码
 立即注册
收起左侧

使用数据流写入二进制文件时,写入0x0A时错误

2
回复
5808
查看
[复制链接]
累计签到:5 天
连续签到:1 天
来源: 2016-6-11 21:46:52 显示全部楼层 |阅读模式
1Qter豆
在使用数据流向txt写入二进制文件时,发现写入32位0x0A时,txt文本中实际写入的是32位0x0D后又写入一个0x0A,代码如下

  1. #include <QtCore/QCoreApplication>
  2. #include <QFileInfo>
  3. #include <QTextCodec>
  4. #include <QStringList>
  5. #include <QDateTime>
  6. #include <QDebug>

  7. int main(int argc, char *argv[])
  8. {
  9.     QCoreApplication a(argc, argv);
  10.     QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

  11.     QFile writefile1("write1.txt");//写入文件1
  12.          if(!writefile1.open(QIODevice::WriteOnly | QIODevice::Text)) {
  13.              qDebug()<<"Can't open the file!"<<endl;
  14.          }
  15.               QDataStream stream_write1(&writefile1);

  16.               int cnt=30;//!readfile.atEnd()
  17.               while(cnt--){
  18.                      stream_write1<<(qint32)0x0A;
  19.                      }

  20.               qDebug()<<"OK!"<<endl;

  21.          writefile1.close();


  22.     return a.exec();
  23. }
复制代码
实际写入txt的二进制文件如图所示
本人新手小白,请各位大神指教




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

全世界文件只分两种,一种是文本,另一种就是二进制。
回复

使用道具 举报

尚未签到

2016-6-11 21:46:53 显示全部楼层
全世界文件只分两种,一种是文本,另一种就是二进制。
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-6-11 23:37:19 显示全部楼层
啊,解决了,打开的是二进制文件,打开时不能添加QIODevice::Text
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了