QTextStream 类提供用于读写文本的方便接口。 更多...
头: | #include <QTextStream> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
继承: | QIODeviceBase |
注意: 此类的所有函数 可重入 .
enum | FieldAlignment { AlignLeft, AlignRight, AlignCenter, AlignAccountingStyle } |
enum | NumberFlag { ShowBase, ForcePoint, ForceSign, UppercaseBase, UppercaseDigits } |
flags | NumberFlags |
enum | RealNumberNotation { ScientificNotation, FixedNotation, SmartNotation } |
enum | Status { Ok, ReadPastEnd, ReadCorruptData, WriteFailed } |
QTextStream () | |
QTextStream (QIODevice * device ) | |
QTextStream (FILE * fileHandle , QIODeviceBase::OpenMode openMode = ReadWrite) | |
QTextStream (QString * string , QIODeviceBase::OpenMode openMode = ReadWrite) | |
QTextStream (QByteArray * array , QIODeviceBase::OpenMode openMode = ReadWrite) | |
QTextStream (const QByteArray & array , QIODeviceBase::OpenMode openMode = ReadOnly) | |
virtual | ~QTextStream () |
bool | atEnd () const |
bool | autoDetectUnicode () const |
QIODevice * | device () const |
QStringConverter::Encoding | encoding () const |
QTextStream::FieldAlignment | fieldAlignment () const |
int | fieldWidth () const |
void | flush () |
bool | generateByteOrderMark () const |
int | integerBase () const |
QLocale | locale () const |
QTextStream::NumberFlags | numberFlags () const |
QChar | padChar () const |
qint64 | pos () const |
QString | read (qint64 maxlen ) |
QString | readAll () |
QString | readLine (qint64 maxlen = 0) |
bool | readLineInto (QString * line , qint64 maxlen = 0) |
QTextStream::RealNumberNotation | realNumberNotation () const |
int | realNumberPrecision () const |
void | reset () |
void | resetStatus () |
bool | seek (qint64 pos ) |
void | setAutoDetectUnicode (bool enabled ) |
void | setDevice (QIODevice * device ) |
void | setEncoding (QStringConverter::Encoding encoding ) |
void | setFieldAlignment (QTextStream::FieldAlignment mode ) |
void | setFieldWidth (int width ) |
void | setGenerateByteOrderMark (bool generate ) |
void | setIntegerBase (int base ) |
void | setLocale (const QLocale & locale ) |
void | setNumberFlags (QTextStream::NumberFlags flags ) |
void | setPadChar (QChar ch ) |
void | setRealNumberNotation (QTextStream::RealNumberNotation notation ) |
void | setRealNumberPrecision (int precision ) |
void | setStatus (QTextStream::Status status ) |
void | setString (QString * string , QIODeviceBase::OpenMode openMode = ReadWrite) |
void | skipWhiteSpace () |
QTextStream::Status | status () const |
QString * | string () const |
QTextStream & | operator<< (QChar c ) |
QTextStream & | operator<< (char c ) |
(since 6.3.1)
QTextStream &
|
operator<< (char16_t c ) |
QTextStream & | operator<< (short i ) |
QTextStream & | operator<< (unsigned short i ) |
QTextStream & | operator<< (int i ) |
QTextStream & | operator<< (unsigned int i ) |
QTextStream & | operator<< (long i ) |
QTextStream & | operator<< (unsigned long i ) |
QTextStream & | operator<< (qlonglong i ) |
QTextStream & | operator<< (qulonglong i ) |
QTextStream & | operator<< (float f ) |
QTextStream & | operator<< (double f ) |
QTextStream & | operator<< (const QString & string ) |
QTextStream & | operator<< (QStringView string ) |
QTextStream & | operator<< (QLatin1StringView string ) |
QTextStream & | operator<< (const QByteArray & array ) |
QTextStream & | operator<< (const char * string ) |
QTextStream & | operator<< (const void * ptr ) |
QTextStream & | operator>> (QChar & c ) |
QTextStream & | operator>> (char & c ) |
(从 6.4 起)
QTextStream &
|
operator>> (char16_t & c ) |
QTextStream & | operator>> (short & i ) |
QTextStream & | operator>> (unsigned short & i ) |
QTextStream & | operator>> (int & i ) |
QTextStream & | operator>> (unsigned int & i ) |
QTextStream & | operator>> (long & i ) |
QTextStream & | operator>> (unsigned long & i ) |
QTextStream & | operator>> (qlonglong & i ) |
QTextStream & | operator>> (qulonglong & i ) |
QTextStream & | operator>> (float & f ) |
QTextStream & | operator>> (double & f ) |
QTextStream & | operator>> (QString & str ) |
QTextStream & | operator>> (QByteArray & array ) |
QTextStream & | operator>> (char * c ) |
QTextStreamManipulator | qSetFieldWidth (int width ) |
QTextStreamManipulator | qSetPadChar (QChar ch ) |
QTextStreamManipulator | qSetRealNumberPrecision (int precision ) |
QTextStream 可以运转于 QIODevice , QByteArray 或 QString 。使用 QTextStream 的流运算符,可以方便地读写单词、行及数字。为生成文本,QTextStream 支持用于字段铺垫和对齐的格式化选项、及数字格式化。范例:
QFile data("output.txt"); if (data.open(QFile::WriteOnly | QFile::Truncate)) { QTextStream out(&data); out << "Result: " << qSetFieldWidth(10) << left << 3.14 << 2.7; // writes "Result: 3.14 2.7 " }
使用 QTextStream 读取控制台输入,并写入控制台输出也很常见。QTextStream 感知区域设置,且会使用正确编码自动解码 stdin (标准输入)。范例:
QTextStream stream(stdin); QString line; while (stream.readLineInto(&line)) { ... }
除使用 QTextStream 构造函数外,还可以设置操作设备 (或字符串) 的 QTextStream 通过调用 setDevice () 或 setString ()。可以寻址到位置通过调用 seek (),和 atEnd () 将返回 true 当没有剩余数据要读取时。若调用 flush (),QTextStream 将清空其写入缓冲中的所有数据并调用 flush () 在设备。
在内部,QTextStream 使用 Unicode 基缓冲,和 QStringConverter 用于 QTextStream 以自动支持不同编码。默认情况下,UTF-8 用于读写,但也可以设置编码通过调用 setEncoding ()。自动 Unicode 检测也支持。当启用此特征 (默认行为) 时,QTextStream 将检测 UTF-8、UTF-16 或 UTF-32 BOM (字节序标记),并在读取时切换到适当 UTF 编码。默认情况下,QTextStream 不会写入 BOM,但可以启用这通过调用 setGenerateByteOrderMark (true)。当 QTextStream 运转于 QString 直接,禁用编码。
使用 QTextStream 有 3 种一般办法,当读取文本文件时:
由于文本流使用缓冲,不应该使用超类实现从流读取。例如,若拥有 QFile 并直接读取自它使用 QFile::readLine () 而不是使用流,文本流的内部位置将不同步于文件位置。
默认情况下,当从文本流读取数字时,QTextStream 将自动检测数字的基表示。例如,若数字以 0x 开始,假定是十六进制形式。若以数字 1-9 开始,假定是十进制形式,依此类推。可以设置整数基,从而禁用自动检测,通过调用 setIntegerBase ()。范例:
QTextStream in("0x50 0x20"); int firstNumber, secondNumber; in >> firstNumber; // firstNumber == 80 in >> dec >> secondNumber; // secondNumber == 0 char ch; in >> ch; // ch == 'x'
QTextStream 支持用于生成文本的很多格式化选项。可以设置字段宽度,和填充字符通过调用 setFieldWidth () 和 setPadChar ()。使用 setFieldAlignment () 以设置每个字段内的对齐方式。对于实数,调用 setRealNumberNotation () 和 setRealNumberPrecision () 以设置表示法 ( SmartNotation , ScientificNotation , FixedNotation ) 及生成数字的位数精度。一些额外数字格式化选项也是可用的透过 setNumberFlags ().
像
<iostream>
在标准 C++ 库,QTextStream 还定义了几个全局操纵器函数:
此外,Qt 提供了 3 个接受参数的全局操纵符: qSetFieldWidth (), qSetPadChar (),和 qSetRealNumberPrecision ().
另请参阅 QDataStream , QIODevice , QFile , QBuffer ,和 QTcpSocket .
此枚举指定如何对齐字段中的文本,当字段比占据文本更宽时。
常量 | 值 | 描述 |
---|---|---|
QTextStream::AlignLeft
|
0
|
铺垫在字段右侧。 |
QTextStream::AlignRight
|
1
|
铺垫在字段左侧。 |
QTextStream::AlignCenter
|
2
|
铺垫在字段的两侧。 |
QTextStream::AlignAccountingStyle
|
3
|
如同 AlignRight,除刷新数字符号左侧外。 |
另请参阅 setFieldAlignment ().
此枚举指定可以设置的各种标志能影响输出对于整数,
float
,和
double
。
常量 | 值 | 描述 |
---|---|---|
QTextStream::ShowBase
|
0x1
|
展示作为前缀的基,若基为 16 (0x)、8 (0)、或 2 (0b)。 |
QTextStream::ForcePoint
|
0x2
|
在数字中始终放置小数分隔符,即使没有小数。 |
QTextStream::ForceSign
|
0x4
|
在数字中始终放置符号,即使为正数。 |
QTextStream::UppercaseBase
|
0x8
|
使用大写版本的基前缀 (0X、0B)。 |
QTextStream::UppercaseDigits
|
0x10
|
数字 10-35 使用大写字母表达,而不是小写。 |
NumberFlags 类型是 typedef 对于 QFlags <NumberFlag>。它存储 NumberFlag 值的 OR 组合。
另请参阅 setNumberFlags ().
此枚举指定使用哪种表示法表达
float
and
double
以字符串形式。
常量 | 值 | 描述 |
---|---|---|
QTextStream::ScientificNotation
|
2
|
科学表示法 (
printf()
's
%e
标志)。
|
QTextStream::FixedNotation
|
1
|
定点表示法 (
printf()
's
%f
标志)。
|
QTextStream::SmartNotation
|
0
|
科学 (或定点) 表示法,从属哪种更有意义 (
printf()
's
%g
标志)。
|
另请参阅 setRealNumberNotation ().
此枚举描述文本流的当前状态。
常量 | 值 | 描述 |
---|---|---|
QTextStream::Ok
|
0
|
文本流运转正常。 |
QTextStream::ReadPastEnd
|
1
|
文本流已读取过了底层设备的数据末尾。 |
QTextStream::ReadCorruptData
|
2
|
文本流有读取被破坏数据。 |
QTextStream::WriteFailed
|
3
|
文本流无法写入到底层设备。 |
另请参阅 status ().
构造 QTextStream。在可以使用它进行读取 (或写入) 之前,必须赋值设备 (或字符串)。
另请参阅 setDevice () 和 setString ().
[explicit]
QTextStream::
QTextStream
(
QIODevice
*
device
)
构造 QTextStream 运转于 device .
[explicit]
QTextStream::
QTextStream
(
FILE
*
fileHandle
,
QIODeviceBase::OpenMode
openMode
= ReadWrite)
构造 QTextStream 运转于 fileHandle ,使用 openMode 定义打开方式。在内部, QFile 被创建以处理 FILE 指针。
此构造函数很有用,对于直接工作于基于公共 FILE 的输入和输出流:stdin、stdout 和 stderr。范例:
QString str; QTextStream in(stdin); in >> str;
[explicit]
QTextStream::
QTextStream
(
QString
*
string
,
QIODeviceBase::OpenMode
openMode
= ReadWrite)
构造 QTextStream 运转于 string ,使用 openMode 定义打开方式。
[explicit]
QTextStream::
QTextStream
(
QByteArray
*
array
,
QIODeviceBase::OpenMode
openMode
= ReadWrite)
构造 QTextStream 运转于 array ,使用 openMode 定义打开方式。在内部,数组的包裹是通过 QBuffer .
[explicit]
QTextStream::
QTextStream
(const
QByteArray
&
array
,
QIODeviceBase::OpenMode
openMode
= ReadOnly)
构造 QTextStream 运转于 array ,使用 openMode 定义打开方式。以只读方式访问数组,不管值 openMode .
此构造函数操控常量字符串很方便。范例:
int main(int argc, char *argv[]) { // read numeric arguments (123, 0x20, 4.5...) for (int i = 1; i < argc; ++i) { int number; QTextStream in(argv[i]); in >> number; ... } }
[virtual noexcept]
QTextStream::
~QTextStream
()
销毁 QTextStream .
若流运转于设备, flush () 会被隐式调用。否则,设备不受影响。
返回
true
若没有更多数据能读取自
QTextStream
;否则返回
false
。这类似于,但不同于调用
QIODevice::atEnd
(),因为
QTextStream
还考虑其内部 Unicode 缓冲。
返回
true
若启用了自动 Unicode 检测,否则返回
false
。默认启用自动 Unicode 检测。
另请参阅 setAutoDetectUnicode () 和 setEncoding ().
返回被当前设备关联的
QTextStream
,或
nullptr
若没有设备被赋值。
另请参阅 setDevice () 和 string ().
返回赋值给流的当前编码。
另请参阅 setEncoding (), setAutoDetectUnicode (),和 locale ().
返回当前字段的对齐。
另请参阅 setFieldAlignment () 和 fieldWidth ().
返回当前字段的宽度。
另请参阅 setFieldWidth ().
刷新等待写入设备的任何缓冲数据。
若 QTextStream 运转于字符串,此函数什么都不做。
返回
true
if
QTextStream
被设为生成 UTF BOM (字节序标记),当使用 UTF 编码时;否则返回
false
。默认情况下,UTF BOM (字节序标记) 生成被设为 false。
另请参阅 setGenerateByteOrderMark ().
返回整数的当前基。0 意味着检测基当读取时,或 10 (十进制) 当生成数字时。
另请参阅 setIntegerBase (), QString::number (),和 numberFlags ().
返回用于此流的区域设置。默认区域设置为 C。
另请参阅 setLocale ().
返回当前数字的标志。
另请参阅 setNumberFlags (), integerBase (),和 realNumberNotation ().
返回当前铺垫的字符。
另请参阅 setPadChar () 和 setFieldWidth ().
返回对应流当前位置的设备位置,或 -1 若出现错误 (如:若没有设备/字符串,或若存在设备错误)。
因为 QTextStream 有缓冲,此函数可能必须寻址设备以重构有效设备位置。此操作会很昂贵,所以,可能想要避免在紧密循环中调用此函数。
另请参阅 seek ().
读取最多 maxlen 字符从流,并返回读取数据按 QString .
另请参阅 readAll (), readLine (),和 QIODevice::read ().
读取流的整个内容,并返回它按 QString 。避免使用此函数,当操控大文件时。因为 , 它会消耗大量内存。
调用 readLine () 更好,若不知道有多少数据可用。
另请参阅 readLine ().
从流读取 1 行文本,并返回它按 QString 。最大允许行长度被设为 maxlen 。若流包含的行长于这,则分割行后于 maxlen 字符并以部分形式返回。
若 maxlen 为 0,行可以是任意长度。
返回行没有结尾 (\n 或 \r\n) 行尾字符,所以调用 QString::trimmed () 可能不必要。
若流已读取到 EOF (文件末尾),readLine() 返回 null QString 。对于字符串 (或支持字符串的设备),可以明确测试流是否结束使用 atEnd ().
另请参阅 readAll () 和 QIODevice::readLine ().
从流读取 1 行文本到
line
。若
line
is
nullptr
,不存储读取行。
最大允许行长度被设为 maxlen 。若流包含的行长于这,则分割行后于 maxlen 字符并以部分形式返回。
若 maxlen 为 0,行可以是任意长度。
结果行没有结尾 (\n 或 \r\n) 行尾字符,所以调用 QString::trimmed () 可能不必要。
若 line 有足够容量容纳即将读取的数据;此函数可能不需要分配新内存。因此,它可以更快相比 readLine ().
返回
false
如果流已读取到 EOF (文件末尾) 或出现错误;否则返回
true
。内容在
line
在调用前被丢弃,在任何情况下。
另请参阅 readAll () 和 QIODevice::readLine ().
返回当前实数表示法。
另请参阅 setRealNumberNotation (), realNumberPrecision (), numberFlags (),和 integerBase ().
返回当前实数的精度,或数字的小数位数, QTextStream 将写入当生成实数 ( FixedNotation , ScientificNotation ),或最大数字的有效位数 ( SmartNotation ).
另请参阅 setRealNumberPrecision (), setRealNumberNotation (), realNumberNotation (), numberFlags (),和 integerBase ().
重置 QTextStream 的格式化选项,将之还原到其原始构造状态。设备、字符串及任何缓冲数据,保持不变。
重置文本流的状态。
另请参阅 QTextStream::Status , status (),和 setStatus ().
寻址到位置
pos
在设备中。返回
true
当成功时;否则返回
false
.
若 enabled 为 True, QTextStream 将试图通过窥视流数据以检测 Unicode 编码,看是否可以找到 UTF-8、UTF-16 或 UTF-32 BOM (字节序标记)。若有找到此标记, QTextStream 将以 UTF 编码替换当前编码。
此函数可以一起使用与 setEncoding ()。常见是把编码设为 UTF-8,然后启用 UTF-16 检测。
另请参阅 autoDetectUnicode () 和 setEncoding ().
把当前设备设为 device 。若已经有赋值设备, QTextStream 将调用 flush () 在替换旧设备前。
注意: 此函数把区域设置重置成 C 默认区域设置,并将编码重置成 UTF-8 默认编码。
另请参阅 device () 和 setString ().
把用于此流的编码设为 encoding 。编码用于解码从赋值设备读取的任何数据,和用于编码要写入的任何数据。默认情况下, QStringConverter::Utf8 被使用,并启用自动 Unicode 检测。
若 QTextStream 运转于字符串,此函数什么都不做。
警告: 若调用此函数 (当文本流正从打开的顺序套接字读取时),内部缓冲可能仍包含使用旧编码的解码文本。
另请参阅 encoding (), setAutoDetectUnicode (),和 setLocale ().
把字段对齐方式设为 mode 。当一起用于 setFieldWidth (),此函数允许生成对齐到左、对齐到右、或居中对齐的格式化输出文本。
另请参阅 fieldAlignment () 和 setFieldWidth ().
把当前字段宽度设为 width 。若 width 为 0 (默认),字段宽度等于生成文本长度。
注意: 字段宽度适用于追加到此流的每个元素,在调用此函数后 (如:它还铺垫 endl)。此行为不同于 STL (标准模板库) 类似类,在 STL,字段宽度只适用于下一元素。
另请参阅 fieldWidth () 和 setPadChar ().
若 generate 为 true 并使用 UTF 编码, QTextStream 将插入 BOM (字节序标记) 在把任何数据写入设备前。若 generate 为 False,将不插入 BOM。必须在写入任何数据之前,调用此函数。否则,什么都不做。
另请参阅 generateByteOrderMark () 和 bom ().
把整数的基设为 base ,用于读取和生成数字两者。 base 可以为 2 (二进制)、8 (八进制)、10 (十进制) 或 16 (十六进制)。若 base 为 0, QTextStream 将试图检测基通过审查流中的数据。当生成数字时, QTextStream 假定基为 10 除非有明确设置基。
另请参阅 integerBase (), QString::number (),和 setNumberFlags ().
把用于此流的区域设置设为 locale 。指定的区域设置用于数字及其字符串表示形式之间的转换。
默认区域设置为 C 且是特殊情况 - 不使用千位组分隔符,出于向后兼容原因。
另请参阅 locale ().
把当前数字标志设为 flags . flags 是一组标志来自 NumberFlag enum, and describes options for formatting generated code (e.g., whether or not to always write the base or sign of a number).
另请参阅 numberFlags (), setIntegerBase (),和 setRealNumberNotation ().
把铺垫字符设为 ch 。默认值为 ASCII 空格字符 ' ',或 QChar (0x20)。此字符用于填充字段中的空格,当生成文本时。
范例:
QString s; QTextStream out(&s); out.setFieldWidth(10); out.setFieldAlignment(QTextStream::AlignCenter); out.setPadChar('-'); out << "Qt" << "rocks!";
字符串
s
包含:
----Qt------rocks!--
另请参阅 padChar () 和 setFieldWidth ().
把实数表示法设为 notation ( SmartNotation , FixedNotation , ScientificNotation )。当读取并生成数字时, QTextStream 使用此值来检测实数的格式。
另请参阅 realNumberNotation (), setRealNumberPrecision (), setNumberFlags (),和 setIntegerBase ().
把实数的精度设为 precision . This value describes the number of fraction digits QTextStream should write when generating real numbers ( FixedNotation , ScientificNotation ),或最大数字的有效位数 ( SmartNotation ).
精度不可以为负值。默认值为 6。
另请参阅 realNumberPrecision () 和 setRealNumberNotation ().
把文本流的状态设为 status 给定。
忽略后续 setStatus() 调用,直到 resetStatus () 被调用。
另请参阅 Status , status (),和 resetStatus ().
将当前字符串设为 string ,使用给定 openMode 。若已经有赋值设备, QTextStream 将调用 flush () 在替换它前。
另请参阅 string () 和 setDevice ().
Reads and discards whitespace from the stream until either a non-space character is detected, or until atEnd () returns true. This function is useful when reading a stream character by character.
空白字符是所有字符对于那些
QChar::isSpace
() 返回
true
.
另请参阅 operator>> ().
返回文本流的状态。
另请参阅 QTextStream::Status , setStatus (),和 resetStatus ().
返回的当前字符串被赋值给
QTextStream
,或
nullptr
若没有赋值字符串。
另请参阅 setString () 和 device ().
写入字符 c 到流,然后返回引用针对 QTextStream .
另请参阅 setFieldWidth ().
这是重载函数。
转换 c 从 ASCII 到 QChar ,然后将它写入流。
[since 6.3.1]
QTextStream
&QTextStream::
operator<<
(
char16_t
c
)
这是重载函数。
写入 Unicode 字符 c 到流,然后返回引用针对 QTextStream .
该函数在 Qt 6.3.1 引入。
写入整数数字 i 到流,然后返回引用针对 QTextStream . By default, the number is stored in decimal form, but you can also set the base by calling setIntegerBase ().
另请参阅 setFieldWidth () 和 setNumberFlags ().
这是重载函数。
写入无符号短整数 i 到流。
这是重载函数。
写入有符号整数 i 到流。
这是重载函数。
写入无符号整数 i 到流。
这是重载函数。
写入有符号 long i 到流。
这是重载函数。
写入无符号 long i 到流。
这是重载函数。
写入 qlonglong i 到流。
这是重载函数。
写入 qulonglong i 到流。
写入实数 f 到流,然后返回引用针对 QTextStream 。默认情况下, QTextStream 存储它使用 SmartNotation , with up to 6 digits of precision. You can change the textual representation QTextStream will use for real numbers by calling setRealNumberNotation (), setRealNumberPrecision () 和 setNumberFlags ().
另请参阅 setFieldWidth (), setRealNumberNotation (), setRealNumberPrecision (),和 setNumberFlags ().
这是重载函数。
写入 double f 到流。
写入字符串 string 到流,并返回引用针对 QTextStream . The string is first encoded using the assigned encoding (the default is UTF-8) before it is written to the stream.
另请参阅 setFieldWidth () 和 setEncoding ().
这是重载函数。
写入 string 到流,并返回引用针对 QTextStream .
这是重载函数。
写入 string 到流,并返回引用针对 QTextStream .
这是重载函数。
写入 array 到流。内容对于 array 的转换是采用 QString::fromUtf8 ().
这是重载函数。
写入常量字符串指向通过 string 到流。 string is assumed to be in UTF-8 encoding. This operator is convenient when working with constant string data. Example:
QTextStream out(stdout); out << "Qt rocks!" << Qt::endl;
警告: QTextStream assumes that string points to a string of text, terminated by a '\0' character. If there is no terminating '\0' character, your application may crash.
这是重载函数。
写入 ptr 到流以具有基的十六进制数形式。
从流读取字符并把它存储在 c . Returns a reference to the QTextStream , so several operators can be nested. Example:
QTextStream in(file); QChar ch1, ch2, ch3; in >> ch1 >> ch2 >> ch3;
空白 not 跳过。
这是重载函数。
从流读取字符并把它存储在 c . The character from the stream is converted to ISO-8859-1 before it is stored.
另请参阅 QChar::toLatin1 ().
[since 6.4]
QTextStream
&QTextStream::
operator>>
(
char16_t
&
c
)
这是重载函数。
从流读取字符并把它存储在 c .
该函数在 Qt 6.4 引入。
读取整数从流并把它存储在 i ,然后返回引用针对 QTextStream 。把数字铸造成正确类型,在存储它之前。若在流中未检测到数字, i 被设为 0。
默认情况下, QTextStream 将试图使用下列规则以检测数字的基:
前缀 | 基 |
---|---|
0b 或 0B | 2 (二进制) |
"0" followed by "0-7" | 8 (八进制) |
"0" otherwise | 10 (十进制) |
0x 或 0X | 16 (十六进制) |
1-9 | 10 (十进制) |
通过调用 setIntegerBase (), you can specify the integer base explicitly. This will disable the auto-detection, and speed up QTextStream slightly.
跳过前导空白。
这是重载函数。
Stores the integer in the unsigned short i .
这是重载函数。
Stores the integer in the signed int i .
这是重载函数。
Stores the integer in the unsigned int i .
这是重载函数。
Stores the integer in the signed long i .
这是重载函数。
Stores the integer in the unsigned long i .
这是重载函数。
Stores the integer in the qlonglong i .
这是重载函数。
Stores the integer in the qulonglong i .
Reads a real number from the stream and stores it in f ,然后返回引用针对 QTextStream . The number is cast to the correct type. If no real number is detect on the stream, f is set to 0.0.
As a special exception, QTextStream allows the strings "nan" and "inf" to represent NAN and INF floats or doubles.
跳过前导空白。
这是重载函数。
把实数存储在 double f .
Reads a word from the stream and stores it in
str
, then returns a reference to the stream. Words are separated by whitespace (i.e., all characters for which
QChar::isSpace
() 返回
true
).
跳过前导空白。
这是重载函数。
把单词转换成 UTF-8,然后把它存储在 array .
另请参阅 QString::toLatin1 ().
这是重载函数。
Converts the word to UTF-8 and stores it in c , terminated by a '\0' character. If no word is available, only the '\0' character is stored.
Warning: Although convenient, this operator is dangerous and must be used with care.
QTextStream
assumes that
c
points to a buffer with enough space to hold the word. If the buffer is too small, your application may crash. For a word consisting of
n
QChars, the buffer needs to be at least
3*n+1
characters long.
若可能的话,使用 QByteArray 操作符代替。
相当于 QTextStream::setFieldWidth ( width ).
相当于 QTextStream::setPadChar ( ch ).
相当于 QTextStream::setRealNumberPrecision ( precision ).