[Qt学习篇]小品QIODevice::Text参数

小品QIODevice::Text参数:

QIODevice::Text

0x0010


使用该选项后:

对于读:end-of-line结束符被转译为‘\n‘;

对于写:end-of-line结束符被转译本地编码方式对应的字符。比如,在Win32下,是‘\r\n‘

在使用QIODevice::Text选项读写二进制文件时,由于经过上述转译,造成读写数据不一致,测试示例如下:

 if (!fileRead.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "file open error!\r\n";
        //return (0);
 }
 if (!fileWrite.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qDebug() << "file not exist!\r\n";
 }

可知,原二进制文件中的0x0D被视作结束符,写的时候忽略;0x0A被转译为Win32下的0x0D 0x0A(\r\n)
去掉QIODevice::Text选项后,读写的数据是一致的(测试数据量8k多字节):
if (!fileRead.open(QIODevice::ReadOnly)) {
        qDebug() << "file open error!\r\n";
        //return (0);
    }
    if (!fileWrite.open(QIODevice::WriteOnly)) {
        qDebug() << "file not exist!\r\n";
    }

时间: 2025-01-03 00:53:10

[Qt学习篇]小品QIODevice::Text参数的相关文章

oracle学习篇:二、参数文件

2 参数文件 2.1 参数文件的获取 oracle的初始化参数可以通过查询v$parameter视图得到,在SQL*PLUS中,可以用过show parameter命令来显示某些参数的设置值. 2.2 参数文件 初始化参数文件:pfile 服务器参数文件:spfile 视图v$spparamter记录spfile参数的设置. 没啥好说的,直接学习一下案例分析. 2.3 诊断案例 问题描述:数据库在重新启动时无法正常启动,检查发现undo表空间丢失. 2.3.1 检查alert日志文件 警报日志文

[Qt学习篇]Qthread实现多线程操作

一.QThread类概述 QThread类为用户管理多线程提供了一种平台无关的途径. #include <QThread> 继承自QObject类 二.QThread类详述 QThread对象在程序内部进行控制线程的管理,QThread起始于run()函数额执行.默认情况下,run()通过调用exec()启动事件循环(event loop),并在线程内部执行Qt 的事件循环. 以下示例通过QObject::moveToThread()调用把worker对象添加到线程中运行: class Wor

[Qt总结篇]终端远程升级客户端

环境: QT4.8.5 for Windows(Qt Creator+MinGW) 一.写在前面: 1.深度:鉴于C/C++的功底还远远不足,个人主要精力还是学习C/C++,所以没打算继续深入研究Qt. 2.Why Qt:之前没做过界面相关的东西,也一直很好奇,那么炫的界面怎么做出来的.现在需要一个界面,也没人要求必须用微软的MFC,鉴于都要现学现用(也没人可以请教),而手边有一本半年前买的<C++ GUI QT4编程>(翻过前两章),于是决定上Qt. 3.内容:不涉及具体编码,在必要时会用代

Qt学习总结-ui篇(二)

qccs定义圆角 border-radius:10px; 如果想给特定位置定义圆角,如: 左上角:border-left-top-radius:10px; 右下角色:border-right-bottom-rasius:10px; 半透明效果 只需要在css中使用rgba(100,100,100,40)这种形式来表示颜色即可. 为可执行文件添加图标 1.新建文件:finename.rc 文件名无所谓,只要后缀为rc就可以. 2.编辑新建的文件,输入以下内容: IDI_ICON1 ICON DIS

关于qt学习的一点小记录(2)

嗯...这次接了个单 要求图形界面,刚好可以巩固并学习下QT.毫不犹豫的就接了 下面记录下出现的问题: 1. QWidget和QDialog QDialog下的槽函数有accept()与reject()可以直接用 并且QDialog有exec() 这种方式显示窗口,是阻塞形的 而QWidget则只有show()要自己写阻塞 2. 窗口间通信 2.1 主窗口->子窗口 介个方法很多啦 我用的是直接传值给子窗口里的变量: 比如说: 子窗口有: class changemsg : public QDi

Qt学习 之 文件

文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力.下面是 I/O 设备的类图: Qt4 Qt5 从上面的类图可以看出,Qt4 和 Qt5 在 I/O 设备部分大同小异.只不过 Qt5 新增加了一个QFileDevice类.途中所涉及的类及其用途简要说明如下: 类名 作用 QIODevice

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

Qt 学习之路:文件

文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力.下面是 I/O 设备的类图: Qt4 Qt5 从上面的类图可以看出,Qt4 和 Qt5 在 I/O 设备部分大同小异.只不过 Qt5 新增加了一个QFileDevice类.途中所涉及的类及其用途简要说明如下: QIODevice:所有 I/O

J2EE学习篇之--JQuery技术详解

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏