ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Qt QTextStream

2021-05-05 14:01:15  阅读:242  来源: 互联网

标签:返回 const Qt void 设置 QIODevice QTextStream


一、构造函数

QTextStream()

构造一个空的QTextStream对象

QTextStream(QIODevice * device)

构造一个在device上运行的QTextStream对象

QTextStream(FILE * fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite)

构造一个对 fileHandle 操作的QTextStream,在内部,创建一个QFile来处理文件指针

1     //QTextStream(FILE * fileHandle, QIODevice::OpenMode openMode = QIODevice::ReadWrite) 的例子
2     QString str;
3     QTextStream in(stdin);
4     in >> str;

QTextStream(QString * string, QIODevice::OpenMode openMode = QIODevice::ReadWrite)

构造一个对string进行操作的QTextStream

QTextStream(QByteArray * array, QIODevice::OpenMode openMode = QIODevice::ReadWrite)

构造一个对array进行操作的QTextStream。在内部,数组由QBuffer包装

QTextStream(const QByteArray & array, QIODevice::OpenMode openMode = QIODevice::ReadOnly)

构造一个对array进行操作的QTextStream。不管openMode中的值是什么,数组都是只读的。

 1 //QTextStream(const QByteArray & array, QIODevice::OpenMode openMode =             QIODevice::ReadOnly)  的例子
 2     int main(int argc, char *argv[])
 3     {
 4         // read numeric arguments (123, 0x20, 4.5...)
 5         for (int i = 1; i < argc; ++i) {
 6               int number;
 7               QTextStream in(argv[i]);
 8               in >> number;
 9               ...
10         }
11     }

二、Public Functions
1、判断方法
是否不再读取数据/结尾:atEnd()
bool QTextStream::atEnd() const

如果不再从QTextStream中读取数据,则返回true;否则返回false。这与调用QIODevice::atEnd()类似,但并不相同,因为QTextStream也考虑了它的内部Unicode缓冲区

是否启用自动Unicode检测:autoDetectUnicode()
bool QTextStream::autoDetectUnicode() const

如果启用自动Unicode检测,则返回true,否则返回false。默认情况下启用自动Unicode检测

是否设置为生成UTF BOM:generateByteOrderMark()
bool QTextStream::generateByteOrderMark() const

如果在使用UTF编解码器时将QTextStream设置为生成UTF BOM(字节顺序标记),则返回true;否则返回false。UTF BOM生成默认设置为false

查找/跳转到设备中的位置pos:seek(qint64 pos)
bool QTextStream::seek(qint64 pos)

查找到设备中的位置pos。成功true;否则返回false

2、普通方法
Void
重置QTextStream的格式选项:reset()
void QTextStream::reset()

重置QTextStream的格式选项,使其回到原来的构造状态。设备、字符串和任何缓冲数据都保持不变

重置文本流的状态:resetStatus()
void QTextStream::resetStatus()

重置文本流的状态

刷新等待写入设备的缓冲数据:flush()
void QTextStream::flush()

刷新任何等待写入设备的缓冲数据。如果QTextStream操作一个字符串,这个函数什么也不做

检测到非空格字符:skipWhiteSpace()
void QTextStream::skipWhiteSpace()

从流中读取和丢弃空白,直到检测到非空格字符,或者直到atEnd()返回true。这个函数在逐个字符读取流时非常有用。
空白字符是QChar::isSpace()返回true的所有字符

Get
返回编解码器:codec()
QTextCodec * QTextStream::codec() const

返回当前分配给流的编解码器

返回当前设备:device()
QIODevice * QTextStream::device() const

返回与QTextStream关联的当前设备,如果没有分配设备,则返回0

返回字段对齐方式:fieldAlignment()
FieldAlignment QTextStream::fieldAlignment() const

返回当前字段对齐方式

返回当前字段宽度:fieldWidth()
int QTextStream::fieldWidth() const

返回当前字段宽度

返回当前整数的基数:integerBase()
int QTextStream::integerBase() const

返回当前整数的基数。0表示在读取时检测基数,或在生成数字时检测10 (decimal)

返回此流的语言环境:locale()
QLocale QTextStream::locale() const

返回此流的语言环境。默认的语言环境是C

返回当前数字标志:numberFlags()
NumberFlags QTextStream::numberFlags() const

返回当前数字标志

返回当前填充字符:padChar()
QChar QTextStream::padChar() const

返回当前填充字符

返回流所在的位置:pos()
qint64 QTextStream::pos() const

返回对应流位置的设备位置,或者如果发生错误时返回-1。

返回被读取的数据:read(qint64 maxlen)
QString QTextStream::read(qint64 maxlen)

从流中最多读取maxlen字符,并以QString的形式返回读取的数据

返回流的全部内容:readAll()
QString QTextStream::readAll()

读取流的全部内容,并将其作为QString返回。在处理大文件时避免使用此函数,因为它将消耗大量内存

返回读取一行的内容:readLine(qint64 maxlen = 0)
QString QTextStream::readLine(qint64 maxlen = 0)

从流中读取一行文本,并将其作为QString返回。允许的最大行长度设置为maxlen。如果流包含比这更长的行,那么这些行将在maxlen字符后被分割并以部分形式返回

返回当前的实数表示法:realNumberNotation()
RealNumberNotation QTextStream::realNumberNotation() const

返回当前的实数表示法

返回当前的实数精度:realNumberPrecision()
int QTextStream::realNumberPrecision() const

返回当前的实数精度,或生成实数时将写入的分数位数QTextStream

返回文本流的状态:status()
Status QTextStream::status() const

返回文本流的状态

返回分配给QTextStream的字符串:string()
QString * QTextStream::string() const

返回分配给QTextStream的当前字符串,如果没有分配字符串,则返回0

Set
设置检测Unicode编码:setAutoDetectUnicode(bool enabled)
void QTextStream::setAutoDetectUnicode(bool enabled)

如果启用为真,QTextStream将尝试通过查看流数据来检测Unicode编码,看看是否可以找到UTF-16或UTF-32 BOM(字节顺序标记)。如果找到这个标记,QTextStream将用UTF编解码器替换当前的编解码器。这个函数可以与setCodec()一起使用。通常将编解码器设置为UTF-8,然后启用UTF-16检测

设置编码:setCodec(QTextCodec * codec)
void QTextStream::setCodec(QTextCodec * codec)

将此流的编解码器设置为codec。编解码器用于解码从指定设备读取的任何数据,并对写入的任何数据进行编码。默认情况下,使用QTextCodec::codecForLocale(),并启用自动unicode检测

设置编码为(字符串):setCodec(const char * codecName)
void QTextStream::setCodec(const char * codecName)

将此流的编解码器设置为codecName。codecName的常用值包括“ISO 8859-1”、“UTF-8”和“UTF-16”。如果不能识别编码,什么也不会发生

设置设备:setDevice(QIODevice * device)
void QTextStream::setDevice(QIODevice * device)

将当前设备设置为设备。如果一个设备已经被分配,QTextStream将调用flush()之前的旧设备被替换

设置文本对齐模式:setFieldAlignment(FieldAlignment mode)
void QTextStream::setFieldAlignment(FieldAlignment mode)

将字段对齐设置为模式。当与setFieldWidth()一起使用时,此函数允许生成文本对齐到左、右或中对齐的格式化输出

设置字段宽度:setFieldWidth(int width)
void QTextStream::setFieldWidth(int width)

将当前字段宽度设置为width。如果宽度为0(默认值),则字段宽度等于生成的文本的长度

设置是否使用使用UTF编解码器:setGenerateByteOrderMark(bool generate)
void QTextStream::setGenerateByteOrderMark(bool generate)

generate为真,使用UTF编解码器,QTextStream将在任何数据写入设备之前插入BOM(字节顺序标记)。如果generate为false,则不插入BOM。在写入任何数据之前必须调用此函数。否则,它什么也不做

设置整数的基数:setIntegerBase(int base)
void QTextStream::setIntegerBase(int base)

将整数的基数设置为base,用于读取和生成数字。基数可以是2(二进制)、8(八进制)、10(十进制)或16(十六进制)。如果base为0,QTextStream将尝试通过检查流上的数据来检测base。在生成数字时,QTextStream假设基数为10,除非基数已被显式设置

设置语言环境:setLocale(const QLocale & locale)
void QTextStream::setLocale(const QLocale & locale)

将此流的区域设置为locale。指定的locale用于数字及其字符串表示形式之间的转换。
默认的语言环境是C,它是一个特例——因为向后兼容的原因,没有使用千位组分隔符

设置数字标志:setNumberFlags(NumberFlags flags)
void QTextStream::setNumberFlags(NumberFlags flags)

将当前数字标志设置为标志。flags是一组来自NumberFlag enum的标志,描述了对生成的代码进行格式化的选项(例如,是否总是写基数或数字符号)。

设置填充字符:setPadChar(QChar ch)
void QTextStream::setPadChar(QChar ch)

将填充字符设置为ch。默认值是ASCII空格字符(’ ')或QChar(0x20)。此字符用于在生成文本时填充字段中的空间

设置记数法:setRealNumberNotation(RealNumberNotation notation)
void QTextStream::setRealNumberNotation(RealNumberNotation notation)

将实数表示法设置为记数法(智能表示法、固定表示法、科学表示法)。当读取和生成数字时,QTextStream使用这个值来检测实数的格式

设置实数的精度:setRealNumberPrecision(int precision)
void QTextStream::setRealNumberPrecision(int precision)

将实数的精度设置为precision。此值描述生成实数时QTextStream应写入的分数位数。
精度不能是负数。默认值是6

设置文本流状态:setStatus(Status status)
void QTextStream::setStatus(Status status)

将文本流的状态设置为给定的status。
在调用resetStatus()之前,将忽略对setStatus()的后续调用

设置字符串:setString(QString * string, QIODevice::OpenMode openMode = QIODevice::ReadWrite)
void QTextStream::setString(QString * string, QIODevice::OpenMode openMode = QIODevice::ReadWrite)

使用给定的openMode将当前字符串设置为string。如果一个设备已经被分配,QTextStream将调用flush()之前替换它

标签:返回,const,Qt,void,设置,QIODevice,QTextStream
来源: https://www.cnblogs.com/ybqjymy/p/14731576.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有