|  | Home · All Classes · Main Classes · Annotated · Grouped Classes · Functions |

# QTextStream Class Reference

The QTextStream class provides a convenient interface for reading and writing text. More...

    #include <QTextStream>

Part of the QtCore module.

Inherited by QTextIStream and QTextOStream.

Note: All the functions in this class are reentrant.

- List of all members, including inherited members
- Qt 3 support members

### Public Types

- enum FieldAlignment { AlignLeft, AlignRight, AlignCenter, AlignAccountingStyle }
- enum NumberFlag { ShowBase, ForcePoint, ForceSign, UppercaseBase, UppercaseDigits }
- flags NumberFlags
- enum RealNumberNotation { ScientificNotation, FixedNotation, SmartNotation }

### Public Functions

- 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
- NumberFlags numberFlags () const
- QChar padChar () const
- QString readAll ()
- QString readLine ( qint64 maxlen = 0 )
- RealNumberNotation realNumberNotation () const
- int realNumberPrecision () const
- void reset ()
- 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 setNumberFlags ( NumberFlags flags )
- void setPadChar ( QChar ch )
- void setRealNumberNotation ( RealNumberNotation notation )
- void setRealNumberPrecision ( int precision )
- void setString ( QString * string, QIODevice::OpenMode openMode = QIODevice::ReadWrite )
- void skipWhiteSpace ()
- QString * string () const
- QTextStream & operator<< ( QChar c )
- QTextStream & operator<< ( signed short i )
- QTextStream & operator<< ( float f )
- QTextStream & operator<< ( const QString & string )
- QTextStream & operator<< ( char c )
- 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<< ( double f )
- QTextStream & operator<< ( const QByteArray & array )
- QTextStream & operator<< ( const char * string )
- QTextStream & operator<< ( const void * ptr )
- QTextStream & operator>> ( QChar & c )
- QTextStream & operator>> ( signed short & i )
- QTextStream & operator>> ( float & f )
- QTextStream & operator>> ( QString & str )
- QTextStream & operator>> ( char & c )
- 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>> ( double & f )
- QTextStream & operator>> ( QByteArray & array )
- QTextStream & operator>> ( char * c )

### Related Non-Members

- 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 )

## Detailed Description

The QTextStream class provides a convenient interface for reading and writing text.

QTextStream can operate on a QIODevice, a QByteArray or a QString. Using 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 << endl;
            // writes "Result: 3.14      2.7       \n"
        }

Besides using QTextStream's constructors, you can also set the device or string QTextStream operates on by calling setDevice() or setString(). You can seek to a position by calling seek(), and atEnd() will return true when there is no data left to be read. If you call flush(), QTextStream will empty all data from its write buffer into the device and call flush() on the device.

Internally, QTextStream uses a Unicode based buffer, and QTextCodec is used by 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 BOM (Byte Order Mark) and switch to the appropriate UTF-16 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:

- Chunk by chunk, by calling readLine() or readAll().
- Word by word. QTextStream supports streaming into QStrings, QByteArrays and char* buffers. Words are delimited by space, and leading white space is automatically skipped.
- Character by character, by streaming into QChar or char types. This method is often used for convenient input handling when parsing files, independent of character encoding and end-of-line semantics. To skip white space, call skipWhiteSpace().

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(). Example:

        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() and setPadChar(). Use setFieldAlignment() to set the alignment within each field. For real numbers, call setRealNumberNotation() and setRealNumberPrecision() to set the notation (SmartNotation, ScientificNotation, FixedNotation) and precision in digits of the generated number. Some extra number formatting options are also available through setNumberFlags().

Like `<iostream>` in the standard C++ library, QTextStream also defines several global manipulator functions:

Manipulator | Description
--- | ---
`bin` | Same as setIntegerBase(2).
`oct` | Same as setIntegerBase(8).
`dec` | Same as setIntegerBase(10).
`hex` | Same as setIntegerBase(16).
`showbase` | Same as setNumberFlags(numberFlags() | ShowBase).
`forcesign` | Same as setNumberFlags(numberFlags() | ForceSign).
`forcepoint` | Same as setNumberFlags(numberFlags() | ForcePoint).
`noshowbase` | Same as setNumberFlags(numberFlags() & ~ShowBase).
`noforcesign` | Same as setNumberFlags(numberFlags() & ~ForceSign).
`noforcepoint` | Same as setNumberFlags(numberFlags() & ~ForcePoint).
`uppercasebase` | Same as setNumberFlags(numberFlags() | UppercaseBase).
`uppercasedigits` | Same as setNumberFlags(numberFlags() | UppercaseDigits).
`lowercasebase` | Same as setNumberFlags(numberFlags() & ~UppercaseBase).
`lowercasedigits` | Same as setNumberFlags(numberFlags() & ~UppercaseDigits).
`fixed` | Same as setRealNumberNotation(FixedNotation).
`scientific` | Same as setRealNumberNotation(ScientificNotation).
`left` | Same as setFieldAlignment(AlignLeft).
`right` | Same as setFieldAlignment(AlignRight).
`center` | Same as setFieldAlignment(AlignCenter).
`endl` | Same as operator<<('\n') and flush().
`flush` | Same as flush().
`reset` | Same as reset().
`ws` | Same as skipWhiteSpace().
`bom` | Same as setGenerateByteOrderMark(true).

In addition, Qt provides three global manipulators that take a parameter: qSetFieldWidth(), qSetPadChar(), and qSetRealNumberPrecision().

See also QDataStream, QIODevice, QFile, QBuffer, and QTcpSocket.

## Member Type Documentation

### enum QTextStream::FieldAlignment

This enum specifies how to align text in fields when the field is wider than the text that occupies it.

Constant | Value | Description
--- | --- | ---
`QTextStream::AlignLeft` | `0` | Pad on the right side of fields.
`QTextStream::AlignRight` | `1` | Pad on the left side of fields.
`QTextStream::AlignCenter` | `2` | Pad on both sides of field.
`QTextStream::AlignAccountingStyle` | `3` | Same as AlignRight, except that the sign of a number is flush left.

See also setFieldAlignment().

### enum QTextStream::NumberFlag
flags QTextStream::NumberFlags

This enum specifies various flags that can be set to affect the output of integers, `float`s, and `double`s.

Constant | Value | Description
--- | --- | ---
`QTextStream::ShowBase` | `0x1` | Show the base as a prefix if the base is 16 ("0x"), 8 ("0"), or 2 ("0b").
`QTextStream::ForcePoint` | `0x2` | Always put the decimal separator in numbers, even if there are no decimals.
`QTextStream::ForceSign` | `0x4` | Always put the sign in numbers, even for positive numbers.
`QTextStream::UppercaseBase` | `0x8` | Use uppercase versions of base prefixes ("0X", "0B").
`QTextStream::UppercaseDigits` | `0x10` | Use uppercare letters for expressing digits 10 to 35 instead of lowercase.

The NumberFlags type is a typedef for QFlags<NumberFlag>. It stores an OR combination of NumberFlag values.

See also setNumberFlags().

### enum QTextStream::RealNumberNotation

This enum specifies which notations to use for expressing `float` and `double` as strings.

Constant | Value | Description
--- | --- | ---
`QTextStream::ScientificNotation` | `2` | Scientific notation (`printf()`'s `%e` flag).
`QTextStream::FixedNotation` | `1` | Fixed-point notation (`printf()`'s `%f` flag).
`QTextStream::SmartNotation` | `0` | Scientific or fixed-point notation, depending on which makes most sense (`printf()`'s `%g` flag).

See also setRealNumberNotation().

## Member Function Documentation

### QTextStream::QTextStream ()

Constructs a QTextStream. Before you can use it for reading or writing, you must assign a device or a string.

See also setDevice() and setString().

### QTextStream::QTextStream ( QIODevice * device )

Constructs a QTextStream that operates on device.

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

Constructs a QTextStream that operates on fileHandle, using openMode to define the open mode. Internally, a QFile is created to handle the FILE pointer.

This constructor is useful for working directly with the common FILE based input and output streams: stdin, stdout and stderr. Example:

        QString str;
        QTextStream in(stdin);
        in >> str;

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

Constructs a QTextStream that operates on string, using openMode to define the open mode.

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

Constructs a QTextStream that operates on array, using openMode to define the open mode. Internally, the array is wrapped by a QBuffer.

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

Constructs a QTextStream that operates on array, using openMode to define the open mode. The array is accessed as read-only, regardless of the values in openMode.

This constructor is convenient for working on constant strings. Example:

        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 () `[virtual]`

Destroys the QTextStream.

If the stream operates on a device, flush() will be called implicitly. Otherwise, the device is unaffected.

### bool QTextStream::atEnd () const

Returns true if there is no more data to be read from the QTextStream; otherwise returns false. This is similar to, but not the same as calling QIODevice::atEnd(), as QTextStream also takes into account its internal Unicode buffer.

### bool QTextStream::autoDetectUnicode () const

Returns true if automatic Unicode detection is enabled; otherwise returns false.

See also setAutoDetectUnicode() and setCodec().

### QTextCodec * QTextStream::codec () const

Returns the codec that is current assigned to the stream.

See also setCodec() and setAutoDetectUnicode().

### QIODevice * QTextStream::device () const

Returns the current device associated with the QTextStream, or 0 if no device has been assigned.

See also setDevice() and string().

### FieldAlignment QTextStream::fieldAlignment () const

Returns the current field alignment.

See also setFieldAlignment() and fieldWidth().

### int QTextStream::fieldWidth () const

Returns the current field width.

See also setFieldWidth().

### void QTextStream::flush ()

Flushes any buffered data waiting to be written to the device.

If QTextStream operates on a string, this function does nothing.

### bool QTextStream::generateByteOrderMark () const

Returns true if QTextStream is set to generate the UTF-16 BOM (Byte Order Mark) when using a UTF-16 codec; otherwise returns false.

See also setGenerateByteOrderMark().

### int QTextStream::integerBase () const

Returns the current base of integers. 0 means that the base is detected when reading, or 10 (decimal) when generating numbers.

See also setIntegerBase(), QString::number(), and numberFlags().

### NumberFlags QTextStream::numberFlags () const

Returns the current number flags.

See also setNumberFlags(), integerBase(), and realNumberNotation().

### QChar QTextStream::padChar () const

Returns the current pad character.

See also setPadChar() and setFieldWidth().

### QString QTextStream::readAll ()

Reads the entire content of the stream, and returns it as a QString. Avoid this function when working on large files, as it will consume a significant amount of memory.

Calling readLine() is better if you do not know how much data is available.

See also readLine().

### QString QTextStream::readLine ( qint64 maxlen = 0 )

Reads one line of text from the stream, and returns it as a QString. The maximum allowed line length is set to maxlen. If the stream contains lines longer than this, then the lines will be split after maxlen characters and returned in parts.

If maxlen is 0, the lines can be of any length. A common value for maxlen is 75.

The returned line has no trailing end-of-line characters, so calling QString::trimmed() is unnecessary.

See also readAll().

### RealNumberNotation QTextStream::realNumberNotation () const

Returns the current real number notation.

See also setRealNumberNotation(), realNumberPrecision(), numberFlags(), and integerBase().

### int QTextStream::realNumberPrecision () const

Returns the current real number precision, or the number of fraction digits QTextStream will write when generating real numbers.

See also setRealNumberNotation(), realNumberNotation(), numberFlags(), and integerBase().

### void QTextStream::reset ()

Resets QTextStream's formatting options, bringing it back to its original constructed state. The device, string and any buffered data is left untouched.

### bool QTextStream::seek ( qint64 pos )

Seeks to the position pos in the device. Returns true on success; otherwise returns false.

If QTextStream operates on a string, this function does nothing and returns false.

### void QTextStream::setAutoDetectUnicode ( bool enabled )

If enabled is true, QTextStream will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 BOM (Byte Order Mark). If this mark is found, QTextStream will replace the current codec with the UTF-16 codec.

This function can be used together with setCodec(). It is common to set the codec to UTF-8, and then enable UTF-16 detection.

See also autoDetectUnicode() and setCodec().

### void QTextStream::setCodec ( QTextCodec * codec )

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.

If QTextStream operates on a string, this function does nothing.

See also codec() and setAutoDetectUnicode().

### void QTextStream::setCodec ( const char * codecName )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Sets the codec for this stream to the QTextCodec for the encoding specified by codecName. Common values for `codecName` include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.

Example:

        QTextStream out(&file);
        out.setCodec("UTF-8");

See also QTextCodec::codecForName().

### void QTextStream::setDevice ( QIODevice * device )

Sets the current device to device. If a device has already been assigned, QTextStream will call flush() before the old device is replaced.

See also device() and setString().

### void QTextStream::setFieldAlignment ( FieldAlignment mode )

Sets the field alignment to mode. When used together with setFieldWidth(), this function allows you to generate formatted output with text aligned to the left, to the right or center aligned.

See also fieldAlignment() and setFieldWidth().

### void QTextStream::setFieldWidth ( int width )

Sets the current field width to width. If width is 0 (the default), the field width is equal to the length of the generated text.

See also fieldWidth() and setPadChar().

### void QTextStream::setGenerateByteOrderMark ( bool generate )

If generate is true and a UTF-16 codec is used, QTextStream will insert the BOM (Byte Order Mark) before any data has been written to the device. If generate is false, no BOM will be inserted. This function must be called before any data is written. Otherwise, it does nothing.

See also generateByteOrderMark() and bom().

### void QTextStream::setIntegerBase ( int base )

Sets the base of integers to base, both for reading and for generating numbers. base can be either 2 (binary), 8 (octal), 10 (decimal) or 16 (hexadecimal). If base is 0, QTextStream will attempt to detect the base by inspecting the data on the stream. When generating numbers, QTextStream assumes base is 10 unless the base has been set explicitly.

See also integerBase(), QString::number(), and setNumberFlags().

### void QTextStream::setNumberFlags ( NumberFlags flags )

Sets the current number flags to flags. flags is a set of flags from the NumberFlags enum, and describes options for formatting generated code (e.g., whether or not to always write the base or sign of a number).

See also numberFlags(), setIntegerBase(), and setRealNumberNotation().

### void QTextStream::setPadChar ( QChar ch )

Sets the pad character to ch. The default value is the ASCII space character (' '), or QChar(0x20). This character is used to fill in the space in fields when generating text.

Example:

        QString s;
        QTextStream out(&s);
        out.setFieldWidth(10);
        out.setPadChar('-');
        out << "Qt" << endl << "rocks!" << endl;

Output:

        ----Qt----
        --rocks!--

See also padChar() and setFieldWidth().

### void QTextStream::setRealNumberNotation ( RealNumberNotation notation )

Sets the real number notation to notation (SmartNotation, FixedNotation, ScientificNotation). When reading and generating numbers, QTextStream uses this value to detect the formatting of real numbers.

See also realNumberNotation(), setRealNumberPrecision(), setNumberFlags(), and setIntegerBase().

### void QTextStream::setRealNumberPrecision ( int precision )

Sets the precision of real numbers to precision. This value describes the number of fraction digits QTextStream should write when generating real numbers.

See also realNumberPrecision() and setRealNumberNotation().

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

Sets the current string to string, using the given openMode. If a device has already been assigned, QTextStream will call flush() before replacing it.

See also string() and setDevice().

### void QTextStream::skipWhiteSpace ()

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.

Whitespace characters are all characters for which QChar::isSpace() returns true.

See also operator>>(QChar &) and operator>>(char &).

### QString * QTextStream::string () const

Returns the current string assigned to the QTextStream, or 0 if no string has been assigned.

See also setString() and device().

### QTextStream & QTextStream::operator<< ( QChar c )

Writes the character c to the stream, then returns a reference to the QTextStream.

See also setFieldWidth().

### QTextStream & QTextStream::operator<< ( signed short i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the integer number i to the stream, then returns a reference to the QTextStream. By default, the number is stored in decimal form, but you can also set the base by calling setIntegerBase().

See also setFieldWidth() and setNumberFlags().

### QTextStream & QTextStream::operator<< ( float f )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the real number f to the stream, then returns a reference to the QTextStream. By default, QTextStream stores it using SmartNotation, with up to 6 digits of precision. You can change the textual representation QTextStream will use for real numbers by calling setRealNumberNotation(), setRealNumberPrecision() and setNumberFlags().

See also setFieldWidth(), setRealNumberNotation(), setRealNumberPrecision(), and setNumberFlags().

### QTextStream & QTextStream::operator<< ( const QString & string )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the string string to the stream, and returns a reference to the QTextStream. The string is first encoded using the assigned codec (the default codec is QTextCodec::codecForLocale()) before it is written to the stream.

See also setFieldWidth() and setCodec().

### QTextStream & QTextStream::operator<< ( char c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Converts c from ASCII to a QChar, then writes it to the stream.

### QTextStream & QTextStream::operator<< ( unsigned short i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the unsigned short i to the stream.

### QTextStream & QTextStream::operator<< ( signed int i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the signed int i to the stream.

### QTextStream & QTextStream::operator<< ( unsigned int i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the unsigned int i to the stream.

### QTextStream & QTextStream::operator<< ( signed long i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the signed long i to the stream.

### QTextStream & QTextStream::operator<< ( unsigned long i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the unsigned long i to the stream.

### QTextStream & QTextStream::operator<< ( qlonglong i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the qlonglong i to the stream.

### QTextStream & QTextStream::operator<< ( qulonglong i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the qulonglong i to the stream.

### QTextStream & QTextStream::operator<< ( double f )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the double f to the stream.

### QTextStream & QTextStream::operator<< ( const QByteArray & array )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes array to the stream. The contents of array are converted with QString::fromAscii().

### QTextStream & QTextStream::operator<< ( const char * string )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes the constant string pointed to by string to the stream. 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;

Warning: 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.

### QTextStream & QTextStream::operator<< ( const void * ptr )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Writes ptr to the stream as a hexadecimal number with a base.

### QTextStream & QTextStream::operator>> ( QChar & c )

Reads a character from the stream and stores it in 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;

Whitespace is not skipped.

### QTextStream & QTextStream::operator>> ( signed short & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Reads an integer from the stream and stores it in i, then returns a reference to the QTextStream. The number is casted to the correct type before it is stored. If no number was detected on the stream, i is set to 0.

By default, QTextStream will attempt to detect the base of the number using the following rules:

Prefix | Base
--- | ---
"0b" or "0B" | 2 (binary)
"0" followed by "0-7" | 8 (octal)
"0" otherwise | 10 (decimal)
"0x" or "0X" | 16 (hexadecimal)
"1" to "9" | 10 (decimal)

By calling setIntegerBase(), you can specify the integer base explicitly. This will disable the auto-detection, and speed up QTextStream slightly.

Leading whitespace is skipped.

### QTextStream & QTextStream::operator>> ( float & f )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Reads a real number from the stream and stores it in f, then returns a reference to the QTextStream. The number is casted to the correct type. If no real number is detect on the stream, f is set to 0.0.

Leading whitespace is skipped.

### QTextStream & QTextStream::operator>> ( QString & str )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

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() returns true).

Leading whitespace is skipped.

### QTextStream & QTextStream::operator>> ( char & c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Reads a character from the stream and stores it in c. The character from the stream is converted to ISO-5589-1 before it is stored.

See also QChar::toLatin1().

### QTextStream & QTextStream::operator>> ( unsigned short & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the unsigned short i.

### QTextStream & QTextStream::operator>> ( signed int & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the signed int i.

### QTextStream & QTextStream::operator>> ( unsigned int & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the unsigned int i.

### QTextStream & QTextStream::operator>> ( signed long & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the signed long i.

### QTextStream & QTextStream::operator>> ( unsigned long & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the unsigned long i.

### QTextStream & QTextStream::operator>> ( qlonglong & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the qlonglong i.

### QTextStream & QTextStream::operator>> ( qulonglong & i )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the integer in the qulonglong i.

### QTextStream & QTextStream::operator>> ( double & f )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Stores the real number in the double f.

### QTextStream & QTextStream::operator>> ( QByteArray & array )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Converts the word to ISO-8859-1, then stores it in array.

See also QString::toLatin1().

### QTextStream & QTextStream::operator>> ( char * c )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

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.

If possible, use the QByteArray operator instead.

## Related Non-Members

### QTextStream & bin ( QTextStream & stream )

Calls QTextStream::setIntegerBase(2) on stream and returns stream.

See also oct(), dec(), hex(), and QTextStream manipulators.

### QTextStream & bom ( QTextStream & stream )

Toggles insertion of the UTF-16 Byte Order Mark on stream when QTextStream is used with a UTF-16 codec.

See also QTextStream::setGenerateByteOrderMark() and QTextStream manipulators.

### QTextStream & center ( QTextStream & stream )

Calls QTextStream::setFieldAlignment(QTextStream::AlignCenter) on stream and returns stream.

See also left(), right(), and QTextStream manipulators.

### QTextStream & dec ( QTextStream & stream )

Calls QTextStream::setIntegerBase(10) on stream and returns stream.

See also bin(), oct(), hex(), and QTextStream manipulators.

### QTextStream & endl ( QTextStream & stream )

Writes '\n' to the stream and flushes the stream.

Equivalent to

        stream << '\n' << flush;

See also flush(), reset(), and QTextStream manipulators.

### QTextStream & fixed ( QTextStream & stream )

Calls QTextStream::setRealNumberNotation(QTextStream::FixedNotation) on stream and returns stream.

See also scientific() and QTextStream manipulators.

### QTextStream & flush ( QTextStream & stream )

Calls QTextStream::flush() on stream and returns stream.

See also endl(), reset(), and QTextStream manipulators.

### QTextStream & forcepoint ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForcePoint) on stream and returns stream.

See also noforcepoint(), forcesign(), showbase(), and QTextStream manipulators.

### QTextStream & forcesign ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ForceSign) on stream and returns stream.

See also noforcesign(), forcepoint(), showbase(), and QTextStream manipulators.

### QTextStream & hex ( QTextStream & stream )

Calls QTextStream::setIntegerBase(16) on stream and returns stream.

See also bin(), oct(), dec(), and QTextStream manipulators.

### QTextStream & left ( QTextStream & stream )

Calls QTextStream::setFieldAlignment(QTextStream::AlignLeft) on stream and returns stream.

See also right(), center(), and QTextStream manipulators.

### QTextStream & lowercasebase ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseBase) on stream and returns stream.

See also uppercasebase(), lowercasedigits(), and QTextStream manipulators.

### QTextStream & lowercasedigits ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::UppercaseDigits) on stream and returns stream.

See also uppercasedigits(), lowercasebase(), and QTextStream manipulators.

### QTextStream & noforcepoint ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForcePoint) on stream and returns stream.

See also forcepoint(), noforcesign(), noshowbase(), and QTextStream manipulators.

### QTextStream & noforcesign ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ForceSign) on stream and returns stream.

See also forcesign(), noforcepoint(), noshowbase(), and QTextStream manipulators.

### QTextStream & noshowbase ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() & ~QTextStream::ShowBase) on stream and returns stream.

See also showbase(), noforcesign(), noforcepoint(), and QTextStream manipulators.

### QTextStream & oct ( QTextStream & stream )

Calls QTextStream::setIntegerBase(8) on stream and returns stream.

See also bin(), dec(), hex(), and QTextStream manipulators.

### QTextStreamManipulator qSetFieldWidth ( int width )

Equivalent to QTextStream::setFieldWidth(width).

### QTextStreamManipulator qSetPadChar ( QChar ch )

Equivalent to QTextStream::setPadChar(ch).

### QTextStreamManipulator qSetRealNumberPrecision ( int precision )

Equivalent to QTextStream::setRealNumberPrecision(precision).

### QTextStream & reset ( QTextStream & stream )

Calls QTextStream::reset() on stream and returns stream.

See also flush() and QTextStream manipulators.

### QTextStream & right ( QTextStream & stream )

Calls QTextStream::setFieldAlignment(QTextStream::AlignRight) on stream and returns stream.

See also left(), center(), and QTextStream manipulators.

### QTextStream & scientific ( QTextStream & stream )

Calls QTextStream::setRealNumberNotation(QTextStream::ScientificNotation) on stream and returns stream.

See also fixed() and QTextStream manipulators.

### QTextStream & showbase ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::ShowBase) on stream and returns stream.

See also noshowbase(), forcesign(), forcepoint(), and QTextStream manipulators.

### QTextStream & uppercasebase ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseBase) on stream and returns stream.

See also lowercasebase(), uppercasedigits(), and QTextStream manipulators.

### QTextStream & uppercasedigits ( QTextStream & stream )

Calls QTextStream::setNumberFlags(QTextStream::numberFlags() | QTextStream::UppercaseDigits) on stream and returns stream.

See also lowercasedigits(), uppercasebase(), and QTextStream manipulators.

### QTextStream & ws ( QTextStream & stream )

Calls skipWhiteSpace() on stream and returns stream.

See also QTextStream manipulators.