The QTextStream class provides a convenient interface for reading and writing text. 更多...
头: | #include <QTextStream> |
qmake: | QT += core |
注意: 此类的所有函数 可重入 .
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 , QIODevice::OpenMode openMode = QIODevice::ReadWrite) | |
QTextStream (QString * string , QIODevice::OpenMode openMode = QIODevice::ReadWrite) | |
QTextStream (QByteArray * array , QIODevice::OpenMode openMode = QIODevice::ReadWrite) | |
QTextStream (const QByteArray & array , QIODevice::OpenMode openMode = QIODevice::ReadOnly) | |
virtual | ~QTextStream () |
bool | atEnd () const |
bool | autoDetectUnicode () const |
QTextCodec * | codec () const |
QIODevice * | device () const |
FieldAlignment | fieldAlignment () const |
int | fieldWidth () const |
void | flush () |
bool | generateByteOrderMark () const |
int | integerBase () const |
QLocale | locale () const |
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) |
RealNumberNotation | realNumberNotation () const |
int | realNumberPrecision () const |
void | reset () |
void | resetStatus () |
bool | seek (qint64 pos ) |
void | setAutoDetectUnicode (bool enabled ) |
void | setCodec (QTextCodec * codec ) |
void | setCodec (const char * codecName ) |
void | setDevice (QIODevice * device ) |
void | setFieldAlignment (FieldAlignment mode ) |
void | setFieldWidth (int width ) |
void | setGenerateByteOrderMark (bool generate ) |
void | setIntegerBase (int base ) |
void | setLocale (const QLocale & locale ) |
void | setNumberFlags (NumberFlags flags ) |
void | setPadChar (QChar ch ) |
void | setRealNumberNotation (RealNumberNotation notation ) |
void | setRealNumberPrecision (int precision ) |
void | setStatus (Status status ) |
void | setString (QString * string , QIODevice::OpenMode openMode = QIODevice::ReadWrite) |
void | skipWhiteSpace () |
状态 | status () const |
QString * | string () const |
QTextStream & | operator<< (QChar c ) |
QTextStream & | operator<< (char c ) |
QTextStream & | operator<< (signed short i ) |
QTextStream & | operator<< (unsigned short i ) |
QTextStream & | operator<< (signed int i ) |
QTextStream & | operator<< (unsigned int i ) |
QTextStream & | operator<< (signed 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<< (QLatin1String string ) |
QTextStream & | operator<< (const QStringRef & string ) |
QTextStream & | operator<< (const QByteArray & array ) |
QTextStream & | operator<< (const char * string ) |
QTextStream & | operator<< (const void * ptr ) |
QTextStream & | operator>> (QChar & c ) |
QTextStream & | operator>> (char & c ) |
QTextStream & | operator>> (signed short & i ) |
QTextStream & | operator>> (unsigned short & i ) |
QTextStream & | operator>> (signed int & i ) |
QTextStream & | operator>> (unsigned int & i ) |
QTextStream & | operator>> (signed 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 ) |
QTextStream & | bin (QTextStream & stream ) |
QTextStream & | bom (QTextStream & stream ) |
QTextStream & | center (QTextStream & stream ) |
QTextStream & | dec (QTextStream & stream ) |
QTextStream & | endl (QTextStream & stream ) |
QTextStream & | fixed (QTextStream & stream ) |
QTextStream & | flush (QTextStream & stream ) |
QTextStream & | forcepoint (QTextStream & stream ) |
QTextStream & | forcesign (QTextStream & stream ) |
QTextStream & | hex (QTextStream & stream ) |
QTextStream & | left (QTextStream & stream ) |
QTextStream & | lowercasebase (QTextStream & stream ) |
QTextStream & | lowercasedigits (QTextStream & stream ) |
QTextStream & | noforcepoint (QTextStream & stream ) |
QTextStream & | noforcesign (QTextStream & stream ) |
QTextStream & | noshowbase (QTextStream & stream ) |
QTextStream & | oct (QTextStream & stream ) |
QTextStreamManipulator | qSetFieldWidth (int width ) |
QTextStreamManipulator | qSetPadChar (QChar ch ) |
QTextStreamManipulator | qSetRealNumberPrecision (int precision ) |
QTextStream & | reset (QTextStream & stream ) |
QTextStream & | right (QTextStream & stream ) |
QTextStream & | scientific (QTextStream & stream ) |
QTextStream & | showbase (QTextStream & stream ) |
QTextStream & | uppercasebase (QTextStream & stream ) |
QTextStream & | uppercasedigits (QTextStream & stream ) |
QTextStream & | ws (QTextStream & stream ) |
The QTextStream class provides a convenient interface for reading and writing text.
QTextStream can operate on a QIODevice , QByteArray 或 QString 。使用 QTextStream 's streaming operators, you can conveniently read and write words, lines and numbers. For generating text, QTextStream supports formatting options for field padding and alignment, and formatting of numbers. Example:
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 " }
It's also common to use QTextStream to read console input and write console output. QTextStream is locale aware, and will automatically decode standard input using the correct codec. Example:
QTextStream stream(stdin); QString line; while (stream.readLineInto(&line)) { ... }
Besides using QTextStream 's constructors, you can also set the device or string QTextStream operates on by calling setDevice () 或 setString ()。可以寻址到位置通过调用 seek (),和 atEnd () 将返回 true 当没有剩余数据要读取时。若调用 flush (), QTextStream will empty all data from its write buffer into the device and call flush () 在设备。
在内部, QTextStream uses a Unicode based buffer, and QTextCodec 用于 QTextStream to automatically support different character sets. By default, QTextCodec::codecForLocale () is used for reading and writing, but you can also set the codec by calling setCodec (). Automatic Unicode detection is also supported. When this feature is enabled (the default behavior), QTextStream will detect the UTF-16 or the UTF-32 BOM (Byte Order Mark) and switch to the appropriate UTF codec when reading. QTextStream does not write a BOM by default, but you can enable this by calling setGenerateByteOrderMark (true). When QTextStream operates on a QString directly, the codec is disabled.
There are three general ways to use QTextStream when reading text files:
由于文本流使用缓冲,不应该使用超类实现从流读取。例如,若拥有 QFile 并直接读取自它使用 QFile::readLine () 而不是使用流,文本流的内部位置将不同步于文件位置。
By default, when reading numbers from a stream of text, QTextStream will automatically detect the number's base representation. For example, if the number starts with "0x", it is assumed to be in hexadecimal form. If it starts with the digits 1-9, it is assumed to be in decimal form, and so on. You can set the integer base, thereby disabling the automatic detection, by calling setIntegerBase ()。范例:
QTextStream in("0x50 0x20"); int firstNumber, secondNumber; in >> firstNumber; // firstNumber == 80 in >> dec >> secondNumber; // secondNumber == 0 char ch; in >> ch; // ch == 'x'
QTextStream supports many formatting options for generating text. You can set the field width and pad character by calling setFieldWidth () 和 setPadChar ()。使用 setFieldAlignment () 以设置每个字段内的对齐方式。对于实数,调用 setRealNumberNotation () 和 setRealNumberPrecision () 以设置表示法 ( SmartNotation , ScientificNotation , FixedNotation ) 及生成数字的位数精度。一些额外数字格式化选项也是可用的透过 setNumberFlags ().
像
<iostream>
in the standard C++ library,
QTextStream
also defines several global manipulator functions:
此外,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 . Before you can use it for reading or writing, you must assign a device or a string.
另请参阅 setDevice () 和 setString ().
构造 QTextStream that operates on device .
构造 QTextStream that operates on fileHandle ,使用 openMode 定义打开方式。在内部, QFile 被创建以处理 FILE 指针。
此构造函数很有用,对于直接工作于基于公共 FILE 的输入和输出流:stdin、stdout 和 stderr。范例:
QString str; QTextStream in(stdin); in >> str;
构造 QTextStream that operates on string ,使用 openMode 定义打开方式。
构造 QTextStream that operates on array ,使用 openMode 定义打开方式。在内部,数组的包裹是通过 QBuffer .
构造 QTextStream that operates on 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; ... } }
[虚拟]
QTextStream::
~QTextStream
()
销毁 QTextStream .
若流运转于设备, flush () 会被隐式调用。否则,设备不受影响。
返回
true
若没有更多数据能读取自
QTextStream
;否则返回
false
。这类似于,但不同于调用
QIODevice::atEnd
(),因为
QTextStream
还考虑其内部 Unicode 缓冲。
返回
true
若启用了自动 Unicode 检测,否则返回
false
。默认启用自动 Unicode 检测。
另请参阅 setAutoDetectUnicode () 和 setCodec ().
Returns the codec that is current assigned to the stream.
另请参阅 setCodec (), setAutoDetectUnicode (),和 locale ().
返回被当前设备关联的 QTextStream , or 0 if no device has been assigned.
另请参阅 setDevice () 和 string ().
返回当前字段的对齐。
另请参阅 setFieldAlignment () 和 fieldWidth ().
返回当前字段的宽度。
另请参阅 setFieldWidth ().
刷新等待写入设备的任何缓冲数据。
若 QTextStream 运转于字符串,此函数什么都不做。
返回
true
if
QTextStream
is set to generate the UTF BOM (Byte Order Mark) when using a UTF codec; otherwise returns
false
。默认情况下,UTF BOM (字节序标记) 生成被设为 false。
另请参阅 setGenerateByteOrderMark ().
返回整数的当前基。0 意味着检测基当读取时,或 10 (十进制) 当生成数字时。
另请参阅 setIntegerBase (), QString::number (),和 numberFlags ().
返回用于此流的区域设置。默认区域设置为 C。
该函数在 Qt 4.5 引入。
另请参阅 setLocale ().
返回当前数字的标志。
另请参阅 setNumberFlags (), integerBase (),和 realNumberNotation ().
返回当前铺垫的字符。
另请参阅 setPadChar () 和 setFieldWidth ().
返回对应流当前位置的设备位置,或 -1 若出现错误 (如:若没有设备/字符串,或若存在设备错误)。
因为 QTextStream 有缓冲,此函数可能必须寻址设备以重构有效设备位置。此操作会很昂贵,所以,可能想要避免在紧密循环中调用此函数。
该函数在 Qt 4.2 引入。
另请参阅 seek ().
读取最多 maxlen 字符从流,并返回读取数据按 QString .
该函数在 Qt 4.1 引入。
另请参阅 readAll (), readLine (),和 QIODevice::read ().
读取流的整个内容,并返回它按 QString 。避免使用此函数,当操控大文件时。因为 , 它会消耗大量内存。
调用 readLine() is better if you do not know how much data is available.
另请参阅 readLine ().
从流读取 1 行文本,并返回它按 QString 。最大允许行长度被设为 maxlen 。若流包含的行长于这,则分割行后于 maxlen 字符并以部分形式返回。
若 maxlen 为 0,行可以是任意长度。
返回行没有结尾 (\n 或 \r\n) 行尾字符,所以调用 QString::trimmed () 可能不必要。
若流已读取到 EOF (文件末尾),readLine() 返回 null QString 。对于字符串 (或支持字符串的设备),可以明确测试流是否结束使用 atEnd ().
另请参阅 readAll () 和 QIODevice::readLine ().
从流读取 1 行文本到 line 。若 line is 0, the read line is not stored.
最大允许行长度被设为 maxlen 。若流包含的行长于这,则分割行后于 maxlen 字符并以部分形式返回。
若 maxlen 为 0,行可以是任意长度。
结果行没有结尾 (\n 或 \r\n) 行尾字符,所以调用 QString::trimmed () 可能不必要。
若 line 有足够容量容纳即将读取的数据;此函数可能不需要分配新内存。因此,它可以更快相比 readLine ().
返回
false
如果流已读取到 EOF (文件末尾) 或出现错误;否则返回
true
。内容在
line
在调用前被丢弃,在任何情况下。
该函数在 Qt 5.5 引入。
另请参阅 readAll () 和 QIODevice::readLine ().
返回当前实数表示法。
另请参阅 setRealNumberNotation (), realNumberPrecision (), numberFlags (),和 integerBase ().
返回当前实数的精度,或数字的小数位数, QTextStream will write when generating real numbers.
另请参阅 setRealNumberPrecision (), setRealNumberNotation (), realNumberNotation (), numberFlags (),和 integerBase ().
重置 QTextStream 的格式化选项,将之还原到其原始构造状态。设备、字符串及任何缓冲数据,保持不变。
重置文本流的状态。
该函数在 Qt 4.1 引入。
另请参阅 QTextStream::Status , status (),和 setStatus ().
寻址到位置
pos
在设备中。返回
true
当成功时;否则返回
false
.
若 enabled 为 True, QTextStream will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 or UTF-32 BOM (Byte Order Mark). If this mark is found, QTextStream will replace the current codec with the UTF codec.
此函数可以一起使用与 setCodec (). It is common to set the codec to UTF-8, and then enable UTF-16 detection.
另请参阅 autoDetectUnicode () 和 setCodec ().
Sets the codec for this stream to codec . The codec is used for decoding any data that is read from the assigned device, and for encoding any data that is written. By default, QTextCodec::codecForLocale () is used, and automatic unicode detection is enabled.
若 QTextStream 运转于字符串,此函数什么都不做。
警告: If you call this function while the text stream is reading from an open sequential socket, the internal buffer may still contain text decoded using the old codec.
另请参阅 codec (), setAutoDetectUnicode (),和 setLocale ().
Sets the codec for this stream to the
QTextCodec
为指定编码通过
codecName
。常见值对于
codecName
包括 ISO 8859-1、UTF-8 及 UTF-16。若编码无法识别,则什么都不发生。
范例:
QTextStream out(&file); out.setCodec("UTF-8");
另请参阅 QTextCodec::codecForName () 和 setLocale ().
把当前设备设为 device 。若已经有赋值设备, QTextStream 将调用 flush () 在替换旧设备前。
注意: This function resets locale to the default locale ('C') and codec to the default codec, QTextCodec::codecForLocale ().
另请参阅 device () 和 setString ().
把字段对齐方式设为 mode 。当一起用于 setFieldWidth (),此函数允许生成对齐到左、对齐到右、或居中对齐的格式化输出文本。
另请参阅 fieldAlignment () 和 setFieldWidth ().
把当前字段宽度设为 width 。若 width 为 0 (默认),字段宽度等于生成文本长度。
注意: 字段宽度适用于追加到此流的每个元素,在调用此函数后 (如:它还铺垫 endl)。此行为不同于 STL (标准模板库) 类似类,在 STL,字段宽度只适用于下一元素。
另请参阅 fieldWidth () 和 setPadChar ().
若 generate is true and a UTF codec is used, QTextStream 将插入 BOM (字节序标记) 在把任何数据写入设备前。若 generate 为 False,将不插入 BOM。必须在写入任何数据之前,调用此函数。否则,什么都不做。
另请参阅 generateByteOrderMark () 和 bom ().
把整数的基设为 base ,用于读取和生成数字两者。 base 可以为 2 (二进制)、8 (八进制)、10 (十进制) 或 16 (十六进制)。若 base 为 0, QTextStream 将试图检测基通过审查流中的数据。当生成数字时, QTextStream 假定基为 10 除非有明确设置基。
另请参阅 integerBase (), QString::number (),和 setNumberFlags ().
把用于此流的区域设置设为 locale 。指定的区域设置用于数字及其字符串表示形式之间的转换。
默认区域设置为 C 且是特殊情况 - 不使用千位组分隔符,出于向后兼容原因。
该函数在 Qt 4.5 引入。
另请参阅 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.
精度不可以为负值。默认值为 6。
另请参阅 realNumberPrecision () 和 setRealNumberNotation ().
把文本流的状态设为 status 给定。
忽略后续 setStatus() 调用,直到 resetStatus () 被调用。
该函数在 Qt 4.1 引入。
另请参阅 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 , or 0 if no string has been assigned.
另请参阅 setString () 和 device ().
写入字符 c 到流,然后返回引用针对 QTextStream .
另请参阅 setFieldWidth ().
这是重载函数。
转换 c 从 ASCII 到 QChar ,然后将它写入流。
写入整数数字 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 codec (the default codec is QTextCodec::codecForLocale ()) before it is written to the stream.
另请参阅 setFieldWidth () 和 setCodec ().
这是重载函数。
写入 string 到流,并返回引用针对 QTextStream .
这是重载函数。
写入 string 到流,并返回引用针对 QTextStream .
该函数在 Qt 5.6 引入。
这是重载函数。
写入 array 到流。内容对于 array 的转换是采用 QString::fromUtf8 ().
这是重载函数。
写入常量字符串指向通过 string 到流。 string is assumed to be in ISO-8859-1 encoding. This operator is convenient when working with constant string data. Example:
QTextStream out(stdout); out << "Qt rocks!" << 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-5589-1 before it is stored.
另请参阅 QChar::toLatin1 ().
读取整数从流并把它存储在 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
).
跳过前导空白。
这是重载函数。
Converts the word to ISO-8859-1, then stores it in array .
另请参阅 QString::toLatin1 ().
这是重载函数。
Stores the word 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.
若可能的话,使用 QByteArray 操作符代替。
调用 QTextStream::setIntegerBase (2) 在 stream 并返回 stream .
另请参阅 oct (), dec (), hex (),和 QTextStream 操作符 .
切换插入的 BOM (字节序标记) 在 stream 当 QTextStream is used with a UTF codec.
另请参阅 QTextStream::setGenerateByteOrderMark () 和 QTextStream 操作符 .
调用 QTextStream::setFieldAlignment ( QTextStream::AlignCenter ) 在 stream 并返回 stream .
另请参阅 left (), right (),和 QTextStream 操作符 .
调用 QTextStream::setIntegerBase (10) 在 stream 并返回 stream .
另请参阅 bin (), oct (), hex (),和 QTextStream 操作符 .
写入 \n 到 stream 并刷新流。
相当于
stream << '\n' << flush;
注意:在 Windows,所有 \n 字符被写成 \r\n 若 QTextStream 's device or string is opened using the QIODevice::Text 标志。
另请参阅 flush (), reset (),和 QTextStream 操作符 .
调用 QTextStream::setRealNumberNotation ( QTextStream::FixedNotation ) 在 stream 并返回 stream .
另请参阅 scientific () 和 QTextStream 操作符 .
调用 QTextStream::flush () 在 stream 并返回 stream .
另请参阅 endl (), reset (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () | QTextStream::ForcePoint ) 在 stream 并返回 stream .
另请参阅 noforcepoint (), forcesign (), showbase (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () | QTextStream::ForceSign ) 在 stream 并返回 stream .
另请参阅 noforcesign (), forcepoint (), showbase (),和 QTextStream 操作符 .
调用 QTextStream::setIntegerBase (16) 在 stream 并返回 stream .
注意: 十六进制修饰符只可以用于写入到流。
另请参阅 bin (), oct (), dec (),和 QTextStream 操作符 .
调用 QTextStream::setFieldAlignment ( QTextStream::AlignLeft ) 在 stream 并返回 stream .
另请参阅 right (), center (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () & ~ QTextStream::UppercaseBase ) 在 stream 并返回 stream .
另请参阅 uppercasebase (), lowercasedigits (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () & ~ QTextStream::UppercaseDigits ) 在 stream 并返回 stream .
另请参阅 uppercasedigits (), lowercasebase (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () & ~ QTextStream::ForcePoint ) 在 stream 并返回 stream .
另请参阅 forcepoint (), noforcesign (), noshowbase (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () & ~ QTextStream::ForceSign ) 在 stream 并返回 stream .
另请参阅 forcesign (), noforcepoint (), noshowbase (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () & ~ QTextStream::ShowBase ) 在 stream 并返回 stream .
另请参阅 showbase (), noforcesign (), noforcepoint (),和 QTextStream 操作符 .
调用 QTextStream::setIntegerBase (8) 在 stream 并返回 stream .
另请参阅 bin (), dec (), hex (),和 QTextStream 操作符 .
相当于 QTextStream::setFieldWidth ( width ).
相当于 QTextStream::setPadChar ( ch ).
相当于 QTextStream::setRealNumberPrecision ( precision ).
调用 QTextStream::reset () 在 stream 并返回 stream .
另请参阅 flush () 和 QTextStream 操作符 .
调用 QTextStream::setFieldAlignment ( QTextStream::AlignRight ) 在 stream 并返回 stream .
另请参阅 left (), center (),和 QTextStream 操作符 .
调用 QTextStream::setRealNumberNotation ( QTextStream::ScientificNotation ) 在 stream 并返回 stream .
另请参阅 fixed () 和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () | QTextStream::ShowBase ) 在 stream 并返回 stream .
另请参阅 noshowbase (), forcesign (), forcepoint (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () | QTextStream::UppercaseBase ) 在 stream 并返回 stream .
另请参阅 lowercasebase (), uppercasedigits (),和 QTextStream 操作符 .
调用 QTextStream::setNumberFlags ( QTextStream::numberFlags () | QTextStream::UppercaseDigits ) 在 stream 并返回 stream .
另请参阅 lowercasedigits (), uppercasebase (),和 QTextStream 操作符 .
调用 skipWhiteSpace() on stream 并返回 stream .
另请参阅 QTextStream 操作符 .