QTextStream Class
La clase QTextStream proporciona una interfaz práctica para leer y escribir texto. Más...
| Cabecera: | #include <QTextStream> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Hereda: | QIODeviceBase |
- Lista de todos los miembros, incluyendo los heredados
- QTextStream es parte de Entrada/Salida y Redes y Clases para datos de cadena.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| 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 } |
Funciones públicas
| QTextStream() | |
| QTextStream(QIODevice *device) | |
| QTextStream(FILE *fileHandle, QIODeviceBase::OpenMode openMode = ReadWrite) | |
| QTextStream(QByteArray *array, QIODeviceBase::OpenMode openMode = ReadWrite) | |
| QTextStream(QString *string, 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) |
(since 6.0) 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 |
(since 6.10) | operator bool() const |
| QTextStream & | operator<<(QChar c) |
| QTextStream & | operator<<(const QString &string) |
| QTextStream & | operator<<(float f) |
| QTextStream & | operator<<(short i) |
| QTextStream & | operator<<(QLatin1StringView string) |
| QTextStream & | operator<<(QStringView string) |
| QTextStream & | operator<<(char c) |
(since 6.3.1) QTextStream & | operator<<(char16_t c) |
| QTextStream & | operator<<(const QByteArray &array) |
| QTextStream & | operator<<(const char *string) |
| QTextStream & | operator<<(const void *ptr) |
| QTextStream & | operator<<(double f) |
| QTextStream & | operator<<(int i) |
| QTextStream & | operator<<(long i) |
| QTextStream & | operator<<(qlonglong i) |
| QTextStream & | operator<<(qulonglong i) |
| QTextStream & | operator<<(unsigned int i) |
| QTextStream & | operator<<(unsigned long i) |
| QTextStream & | operator<<(unsigned short i) |
| QTextStream & | operator>>(QChar &c) |
| QTextStream & | operator>>(QString &str) |
| QTextStream & | operator>>(float &f) |
| QTextStream & | operator>>(short &i) |
| QTextStream & | operator>>(QByteArray &array) |
| QTextStream & | operator>>(char &c) |
| QTextStream & | operator>>(char *c) |
(since 6.4) QTextStream & | operator>>(char16_t &c) |
| QTextStream & | operator>>(double &f) |
| QTextStream & | operator>>(int &i) |
| QTextStream & | operator>>(long &i) |
| QTextStream & | operator>>(qlonglong &i) |
| QTextStream & | operator>>(qulonglong &i) |
| QTextStream & | operator>>(unsigned int &i) |
| QTextStream & | operator>>(unsigned long &i) |
| QTextStream & | operator>>(unsigned short &i) |
Relacionados No miembros
| QTextStreamManipulator | qSetFieldWidth(int width) |
| QTextStreamManipulator | qSetPadChar(QChar ch) |
| QTextStreamManipulator | qSetRealNumberPrecision(int precision) |
Descripción detallada
QTextStream puede operar sobre un QIODevice, un QByteArray o un QString. Usando los operadores de flujo de QTextStream, puedes leer y escribir convenientemente palabras, líneas y números. Para generar texto, QTextStream admite opciones de formato para el relleno y la alineación de campos, así como el formato de números. Ejemplo:
QFile data("output.txt"); if (data.open(QFile::WriteOnly | QFile::Truncate)) { QTextStream out(&data); out << "Result: " << qSetFieldWidth(10) << Qt::left << 3.14 << 2.7; // writes "Result: 3.14 2.7 " }
También es común utilizar QTextStream para leer la entrada de la consola y escribir la salida de la consola. QTextStream es consciente de la configuración regional, y decodificará automáticamente la entrada estándar utilizando la codificación correcta. Ejemplo:
QTextStream stream(stdin); QString line; while (stream.readLineInto(&line)) { //... }
Además de utilizar los constructores de QTextStream, también puedes establecer el dispositivo o cadena sobre la que opera QTextStream llamando a setDevice() o setString(). Puedes buscar una posición llamando a seek(), y atEnd() devolverá true cuando no queden datos por leer. Si llama a flush(), QTextStream vaciará todos los datos de su búfer de escritura en el dispositivo y llamará a flush() en el dispositivo.
Internamente, QTextStream utiliza un buffer basado en Unicode, y QStringConverter es utilizado por QTextStream para soportar automáticamente diferentes codificaciones. Por defecto, UTF-8 se utiliza para la lectura y escritura, pero también se puede establecer la codificación llamando a setEncoding(). También se admite la detección automática de Unicode. Cuando esta característica está activada (el comportamiento por defecto), QTextStream detectará el UTF-8, UTF-16 o el UTF-32 BOM (Byte Order Mark) y cambiará a la codificación UTF apropiada al leer. QTextStream no escribe un BOM por defecto, pero puede habilitarlo llamando a setGenerateByteOrderMark(true). Cuando QTextStream opera sobre un QString directamente, la codificación está deshabilitada.
Hay tres formas generales de utilizar QTextStream al leer archivos de texto:
- Trozo a trozo, llamando a readLine() o readAll().
- Palabra por palabra. QTextStream soporta la transmisión en QStrings, QByteArrays y buffers char*. Las palabras están delimitadas por espacios y los espacios en blanco se omiten automáticamente.
- Carácter a carácter, transmitiendo a QChar o a tipos char. Este método se utiliza a menudo para gestionar la entrada de forma cómoda al analizar archivos, independientemente de la codificación de caracteres y de la semántica de fin de línea. Para omitir los espacios en blanco, llame a skipWhiteSpace().
Dado que el flujo de texto utiliza un buffer, no deberías leer del flujo utilizando la implementación de una superclase. Por ejemplo, si tienes un QFile y lees de él directamente usando QFile::readLine() en lugar de usar el flujo, la posición interna del flujo de texto estará desincronizada con la posición del archivo.
Por defecto, cuando se leen números de un flujo de texto, QTextStream detectará automáticamente la representación base del número. Por ejemplo, si el número comienza con "0x", se asume que está en forma hexadecimal. Si comienza con los dígitos 1-9, se asume que está en forma decimal, y así sucesivamente. Puede establecer la base entera, desactivando así la detección automática, llamando a setIntegerBase(). Ejemplo:
QTextStream in("0x50 0x20"); int firstNumber, secondNumber; in >> firstNumber; // firstNumber == 80 in >> Qt::dec >> secondNumber; // secondNumber == 0 char ch; in >> ch; // ch == 'x'
QTextStream soporta muchas opciones de formato para generar texto. Puede establecer el ancho de campo y el carácter de relleno llamando a setFieldWidth() y setPadChar(). Utilice setFieldAlignment() para establecer la alineación dentro de cada campo. Para números reales, llame a setRealNumberNotation() y setRealNumberPrecision() para establecer la notación (SmartNotation, ScientificNotation, FixedNotation) y la precisión en dígitos del número generado. Algunas opciones adicionales de formateo de números también están disponibles a través de setNumberFlags().
Al igual que <iostream> en la biblioteca estándar de C++, QTextStream también define varias funciones manipuladoras globales:
Además, Qt proporciona tres manipuladores globales que toman un parámetro: qSetFieldWidth(), qSetPadChar(), y qSetRealNumberPrecision().
Ver también QDataStream, QIODevice, QFile, QBuffer, y QTcpSocket.
Documentación de tipos de miembros
enum QTextStream::FieldAlignment
Este enum especifica cómo alinear el texto en los campos cuando el campo es más ancho que el texto que lo ocupa.
| Constante | Valor | Descripción |
|---|---|---|
QTextStream::AlignLeft | 0 | Alinear a la derecha de los campos. |
QTextStream::AlignRight | 1 | Alinear a la izquierda del campo. |
QTextStream::AlignCenter | 2 | Rellenar ambos lados del campo. |
QTextStream::AlignAccountingStyle | 3 | Igual que AlignRight, excepto que el signo de un número se coloca a la izquierda. |
Véase también setFieldAlignment().
enum QTextStream::NumberFlag
flags QTextStream::NumberFlags
Este enum especifica varias banderas que pueden establecerse para afectar la salida de números enteros, floats, y doubles.
| Constante | Valor | Descripción |
|---|---|---|
QTextStream::ShowBase | 0x1 | Muestra la base como prefijo si la base es 16 ("0x"), 8 ("0"), o 2 ("0b"). |
QTextStream::ForcePoint | 0x2 | Poner siempre el separador decimal en los números, aunque no haya decimales. |
QTextStream::ForceSign | 0x4 | Ponga siempre el signo en los números, aunque sean positivos. |
QTextStream::UppercaseBase | 0x8 | Utiliza mayúsculas en los prefijos de base ("0X", "0B"). |
QTextStream::UppercaseDigits | 0x10 | Utilice letras mayúsculas para expresar los dígitos del 10 al 35 en lugar de minúsculas. |
El tipo NumberFlags es un typedef para QFlags<NumberFlag>. Almacena una combinación OR de valores NumberFlag.
Véase también setNumberFlags().
enum QTextStream::RealNumberNotation
Este enum especifica qué notaciones utilizar para expresar float y double como cadenas.
| Constante | Valor | Descripción |
|---|---|---|
QTextStream::ScientificNotation | 2 | Notación científica (printf()'s %e flag). |
QTextStream::FixedNotation | 1 | Notación de punto fijo (printf()'s %f flag). |
QTextStream::SmartNotation | 0 | Notación científica o de punto fijo, dependiendo de cuál tenga más sentido (printf()'s %g flag). |
Véase también setRealNumberNotation().
enum QTextStream::Status
Este enum describe el estado actual del flujo de texto.
| Constante | Valor | Descripción |
|---|---|---|
QTextStream::Ok | 0 | El flujo de texto está funcionando normalmente. |
QTextStream::ReadPastEnd | 1 | El flujo de texto ha leído más allá del final de los datos en el dispositivo subyacente. |
QTextStream::ReadCorruptData | 2 | El flujo de texto ha leído datos corruptos. |
QTextStream::WriteFailed | 3 | El flujo de texto no puede escribir en el dispositivo subyacente. |
Véase también status().
Documentación de las funciones miembro
QTextStream::QTextStream()
Construye un QTextStream. Antes de poder usarlo para leer o escribir, debes asignarle un dispositivo o una cadena.
Véase también setDevice() y setString().
[explicit] QTextStream::QTextStream(QIODevice *device)
Construye un QTextStream que opera sobre device.
[explicit] QTextStream::QTextStream(FILE *fileHandle, QIODeviceBase::OpenMode openMode = ReadWrite)
Construye un QTextStream que opera sobre fileHandle, usando openMode para definir el modo de apertura. Internamente, se crea un QFile para manejar el puntero FILE.
Este constructor es útil para trabajar directamente con los flujos de entrada y salida comunes basados en FILE: stdin, stdout y stderr. Ejemplo:
QString str; QTextStream in(stdin); in >> str;
[explicit] QTextStream::QTextStream(QByteArray *array, QIODeviceBase::OpenMode openMode = ReadWrite)
Construye un QTextStream que opera sobre array, usando openMode para definir el modo de apertura. Internamente, el array está envuelto por un QBuffer.
[explicit] QTextStream::QTextStream(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)
Construye un QTextStream que opera sobre string, usando openMode para definir el modo de apertura.
[explicit] QTextStream::QTextStream(const QByteArray &array, QIODeviceBase::OpenMode openMode = ReadOnly)
Construye un QTextStream que opera sobre array, usando openMode para definir el modo de apertura. Se accede al array como sólo lectura, independientemente de los valores en openMode.
Este constructor es conveniente para trabajar con cadenas constantes. Ejemplo:
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()
Destruye el QTextStream.
Si el flujo opera en un dispositivo, flush() será llamado implícitamente. De lo contrario, el dispositivo no se verá afectado.
bool QTextStream::atEnd() const
Devuelve true si no hay más datos que leer de QTextStream; en caso contrario devuelve false. Esto es similar, pero no es lo mismo que llamar a QIODevice::atEnd(), ya que QTextStream también tiene en cuenta su búfer Unicode interno.
bool QTextStream::autoDetectUnicode() const
Devuelve true si la detección automática de Unicode está activada; en caso contrario, devuelve false. La detección automática de Unicode está activada por defecto.
Véase también setAutoDetectUnicode() y setEncoding().
QIODevice *QTextStream::device() const
Devuelve el dispositivo actual asociado a QTextStream, o nullptr si no se ha asignado ningún dispositivo.
Véase también setDevice() y string().
QStringConverter::Encoding QTextStream::encoding() const
Devuelve la codificación asignada actualmente al flujo.
Véase también setEncoding(), setAutoDetectUnicode() y locale().
QTextStream::FieldAlignment QTextStream::fieldAlignment() const
Devuelve la alineación actual del campo.
Véase también setFieldAlignment() y fieldWidth().
int QTextStream::fieldWidth() const
Devuelve el ancho de campo actual.
Véase también setFieldWidth().
void QTextStream::flush()
Vacía cualquier dato almacenado en el búfer que esté esperando a ser escrito en el dispositivo.
Si QTextStream opera sobre una cadena, esta función no hace nada.
bool QTextStream::generateByteOrderMark() const
Devuelve true si QTextStream está configurado para generar el UTF BOM (Byte Order Mark) cuando se utiliza una codificación UTF; en caso contrario devuelve false. La generación de UTF BOM es falsa por defecto.
Véase también setGenerateByteOrderMark().
int QTextStream::integerBase() const
Devuelve la base actual de los números enteros. 0 significa que se detecta la base al leer, o 10 (decimal) al generar números.
Véase también setIntegerBase(), QString::number(), y numberFlags().
QLocale QTextStream::locale() const
Devuelve la configuración regional de este flujo. La configuración regional por defecto es C.
Véase también setLocale().
QTextStream::NumberFlags QTextStream::numberFlags() const
Devuelve las banderas numéricas actuales.
Véase también setNumberFlags(), integerBase() y realNumberNotation().
QChar QTextStream::padChar() const
Devuelve el carácter de almohadilla actual.
Véase también setPadChar() y setFieldWidth().
qint64 QTextStream::pos() const
Devuelve la posición de dispositivo correspondiente a la posición actual del flujo, o -1 si se produce un error (por ejemplo, si no hay dispositivo o cadena, o si hay un error de dispositivo).
Dado que QTextStream se almacena en búfer, es posible que esta función tenga que buscar el dispositivo para reconstruir una posición de dispositivo válida. Esta operación puede ser costosa, por lo que puede que quieras evitar llamar a esta función en un bucle cerrado.
Véase también seek().
QString QTextStream::read(qint64 maxlen)
Lee como máximo maxlen caracteres del flujo y devuelve los datos leídos como QString.
Véase también readAll(), readLine() y QIODevice::read().
QString QTextStream::readAll()
Lee todo el contenido del flujo y lo devuelve como QString. Evite esta función cuando trabaje con archivos grandes, ya que consumirá una cantidad significativa de memoria.
Es mejor llamar a readLine() si no se sabe cuántos datos hay disponibles.
Véase también readLine().
QString QTextStream::readLine(qint64 maxlen = 0)
Lee una línea de texto del flujo y la devuelve como QString. La longitud máxima de línea permitida se establece en maxlen. Si el flujo contiene líneas más largas, las líneas se dividirán después de los caracteres maxlen y se devolverán por partes.
Si maxlen es 0, las líneas pueden tener cualquier longitud.
La línea devuelta no tiene caracteres de fin de línea ("\n" o "\r\n "), por lo que no es necesario llamar a QString::trimmed().
Si el flujo ha leído hasta el final del archivo, readLine() devolverá un valor nulo QString. Para cadenas, o para dispositivos que lo soporten, puede comprobar explícitamente el final del flujo utilizando atEnd().
Véase también readAll() y QIODevice::readLine().
bool QTextStream::readLineInto(QString *line, qint64 maxlen = 0)
Lee una línea de texto del flujo en line. Si line es nullptr, la línea leída no se almacena.
La longitud máxima de línea permitida es maxlen. Si el flujo contiene líneas más largas, las líneas se dividirán después de los caracteres maxlen y se devolverán por partes.
Si maxlen es 0, las líneas pueden tener cualquier longitud.
La línea resultante no tiene caracteres de final de línea ("\n" o "\r\n "), por lo que puede ser innecesario llamar a QString::trimmed().
Si line tiene capacidad suficiente para los datos que se van a leer, es posible que esta función no necesite asignar nueva memoria. Por ello, puede ser más rápida que readLine().
Devuelve false si el flujo ha leído hasta el final del archivo o se ha producido un error; en caso contrario devuelve true. El contenido en line antes de la llamada se descarta en cualquier caso.
Véase también readAll(), QIODevice::readLine(), y QIODevice::readLineInto().
QTextStream::RealNumberNotation QTextStream::realNumberNotation() const
Devuelve la notación numérica real actual.
Véase también setRealNumberNotation(), realNumberPrecision(), numberFlags() y integerBase().
int QTextStream::realNumberPrecision() const
Devuelve la precisión actual de los números reales, o el número de dígitos de fracción que QTextStream escribirá al generar números reales (FixedNotation, ScientificNotation), o el número máximo de dígitos significativos (SmartNotation).
Véase también setRealNumberPrecision(), setRealNumberNotation(), realNumberNotation(), numberFlags(), y integerBase().
void QTextStream::reset()
Restablece las opciones de formato de QTextStream, devolviéndolo a su estado original. El dispositivo, la cadena y los datos almacenados en el búfer se mantienen intactos.
void QTextStream::resetStatus()
Restablece el estado del flujo de texto.
Véase también QTextStream::Status, status(), y setStatus().
bool QTextStream::seek(qint64 pos)
Busca la posición pos en el dispositivo. Devuelve true en caso de éxito; en caso contrario, devuelve false.
void QTextStream::setAutoDetectUnicode(bool enabled)
Si enabled es verdadero, QTextStream intentará detectar la codificación Unicode echando un vistazo a los datos del flujo para ver si puede encontrar la marca de orden de bytes UTF-8, UTF-16 o UTF-32 (BOM). Si encuentra esta marca, QTextStream sustituirá la codificación actual por la codificación UTF.
Esta función puede utilizarse junto con setEncoding(). Es habitual establecer la codificación en UTF-8 y, a continuación, activar la detección de UTF-16.
Véase también autoDetectUnicode() y setEncoding().
void QTextStream::setDevice(QIODevice *device)
Establece el dispositivo actual a device. Si ya se ha asignado un dispositivo, QTextStream llamará a flush() antes de que el dispositivo antiguo sea reemplazado.
Nota: Esta función restablece la configuración regional a la configuración regional por defecto ('C') y la codificación a la codificación por defecto, UTF-8.
Véase también device() y setString().
[since 6.0] void QTextStream::setEncoding(QStringConverter::Encoding encoding)
Establece la codificación para este flujo en encoding. La codificación se utiliza para descodificar cualquier dato que se lea del dispositivo asignado, y para codificar cualquier dato que se escriba. Por defecto, se utiliza QStringConverter::Utf8, y la detección automática de unicode está activada.
Si QTextStream opera sobre una cadena, esta función no hace nada.
Advertencia: Si llama a esta función mientras el flujo de texto está leyendo de un socket secuencial abierto, el buffer interno puede contener aún texto decodificado usando la codificación antigua.
Esta función se introdujo en Qt 6.0.
Véase también encoding(), setAutoDetectUnicode(), y setLocale().
void QTextStream::setFieldAlignment(QTextStream::FieldAlignment mode)
Establece la alineación de los campos en mode. Cuando se utiliza junto con setFieldWidth(), esta función permite generar una salida formateada con el texto alineado a la izquierda, a la derecha o centrado.
Véase también fieldAlignment() y setFieldWidth().
void QTextStream::setFieldWidth(int width)
Establece la anchura de campo actual en width. Si width es 0 (por defecto), la anchura de campo es igual a la longitud del texto generado.
Nota: La anchura de campo se aplica a cada elemento añadido a este flujo después de que esta función haya sido llamada (por ejemplo, también rellena endl). Este comportamiento es diferente de clases similares en la STL, donde el ancho de campo sólo se aplica al siguiente elemento.
Véase también fieldWidth() y setPadChar().
void QTextStream::setGenerateByteOrderMark(bool generate)
Si generate es verdadero y se utiliza una codificación UTF, QTextStream insertará la BOM (marca de orden de bytes) antes de que se haya escrito ningún dato en el dispositivo. Si generate es falso, no se insertará ninguna BOM. Esta función debe llamarse antes de que se escriba ningún dato. De lo contrario, no hace nada.
Véase también generateByteOrderMark() y bom().
void QTextStream::setIntegerBase(int base)
Establece la base de los enteros en base, tanto para la lectura como para la generación de números. base puede ser 2 (binario), 8 (octal), 10 (decimal) o 16 (hexadecimal). Si base es 0, QTextStream intentará detectar la base inspeccionando los datos en el flujo. Al generar números, QTextStream asume que la base es 10 a menos que se haya establecido explícitamente.
Véase también integerBase(), QString::number(), y setNumberFlags().
void QTextStream::setLocale(const QLocale &locale)
Establece la configuración regional de este flujo en locale. La configuración regional especificada se utiliza para las conversiones entre números y sus representaciones de cadena.
La configuración regional por defecto es C y es un caso especial - el separador de grupos de miles no se utiliza por razones de compatibilidad con versiones anteriores.
Véase también locale().
void QTextStream::setNumberFlags(QTextStream::NumberFlags flags)
Establece las banderas numéricas actuales en flags. flags es un conjunto de banderas del enum NumberFlag, y describe opciones para formatear el código generado (por ejemplo, si escribir o no siempre la base o el signo de un número).
Véase también numberFlags(), setIntegerBase(), y setRealNumberNotation().
void QTextStream::setPadChar(QChar ch)
Establece el carácter de relleno en ch. El valor por defecto es el carácter de espacio ASCII (' '), o QChar(0x20). Este carácter se utiliza para rellenar el espacio en los campos al generar texto.
Ejemplo:
QString s; QTextStream out(&s); out.setFieldWidth(10); out.setFieldAlignment(QTextStream::AlignCenter); out.setPadChar('-'); out << "Qt" << "rocks!";
La cadena s contiene:
----Qt------rocks!--
Véase también padChar() y setFieldWidth().
void QTextStream::setRealNumberNotation(QTextStream::RealNumberNotation notation)
Establece la notación de números reales en notation (SmartNotation, FixedNotation, ScientificNotation). Al leer y generar números, QTextStream utiliza este valor para detectar el formato de los números reales.
Véase también realNumberNotation(), setRealNumberPrecision(), setNumberFlags(), y setIntegerBase().
void QTextStream::setRealNumberPrecision(int precision)
Establece la precisión de los números reales en precision. Este valor describe el número de dígitos de fracción que QTextStream debe escribir al generar números reales (FixedNotation, ScientificNotation), o el número máximo de dígitos significativos (SmartNotation).
La precisión no puede ser un valor negativo. El valor por defecto es 6.
Véase también realNumberPrecision() y setRealNumberNotation().
void QTextStream::setStatus(QTextStream::Status status)
Establece el estado del flujo de texto en status.
Las llamadas posteriores a setStatus() se ignoran hasta que se llame a resetStatus().
Véase también Status, status(), y resetStatus().
void QTextStream::setString(QString *string, QIODeviceBase::OpenMode openMode = ReadWrite)
Establece la cadena actual en string, utilizando el openMode dado. Si un dispositivo ya ha sido asignado, QTextStream llamará a flush() antes de reemplazarlo.
Véase también string() y setDevice().
void QTextStream::skipWhiteSpace()
Lee y descarta los espacios en blanco del flujo hasta que se detecta un carácter no espaciado o hasta que atEnd() devuelve verdadero. Esta función es útil cuando se lee un flujo carácter por carácter.
Los espacios en blanco son todos los caracteres para los que QChar::isSpace() devuelve true.
Véase también operator>>().
QTextStream::Status QTextStream::status() const
Devuelve el estado del flujo de texto.
Véase también QTextStream::Status, setStatus(), y resetStatus().
QString *QTextStream::string() const
Devuelve la cadena actual asignada a QTextStream, o nullptr si no se ha asignado ninguna cadena.
Véase también setString() y device().
[explicit noexcept, since 6.10] QTextStream::operator bool() const
Devuelve si este flujo no tiene errores (status() devuelve Ok).
Esta función se introdujo en Qt 6.10.
QTextStream &QTextStream::operator<<(QChar c)
Escribe el carácter c en el flujo y devuelve una referencia a QTextStream.
Véase también setFieldWidth().
QTextStream &QTextStream::operator<<(const QString &string)
Escribe la cadena string en el flujo y devuelve una referencia a QTextStream. La cadena se codifica primero utilizando la codificación asignada (el valor predeterminado es UTF-8) antes de escribirse en el flujo.
Véase también setFieldWidth() y setEncoding().
QTextStream &QTextStream::operator<<(float f)
Escribe el número real f en el flujo y, a continuación, devuelve una referencia a QTextStream. Por defecto, QTextStream lo almacena utilizando SmartNotation, con hasta 6 dígitos de precisión. Puede cambiar la representación textual que QTextStream utilizará para los números reales llamando a setRealNumberNotation(), setRealNumberPrecision() y setNumberFlags().
Véase también setFieldWidth(), setRealNumberNotation(), setRealNumberPrecision() y setNumberFlags().
QTextStream &QTextStream::operator<<(short i)
Escribe el número entero i en el flujo, luego devuelve una referencia a QTextStream. Por defecto, el número se almacena en forma decimal, pero también se puede establecer la base llamando a setIntegerBase().
Véase también setFieldWidth() y setNumberFlags().
QTextStream &QTextStream::operator<<(QLatin1StringView string)
Escribe string en el flujo y devuelve una referencia a QTextStream.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(QStringView string)
Escribe string en el flujo y devuelve una referencia a QTextStream.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(char c)
Convierte c de ASCII a QChar, y luego lo escribe en el flujo.
Se trata de una función sobrecargada.
[since 6.3.1] QTextStream &QTextStream::operator<<(char16_t c)
Escribe el carácter Unicode c en el flujo y devuelve una referencia a QTextStream.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.3.1.
QTextStream &QTextStream::operator<<(const QByteArray &array)
Escribe array en el flujo. El contenido de array se convierte con QString::fromUtf8().
Esta es una función sobrecargada.
QTextStream &QTextStream::operator<<(const char *string)
Escribe la cadena constante apuntada por string en el flujo. Se supone que string está en codificación UTF-8. Este operador resulta útil cuando se trabaja con datos de cadena constante. Ejemplo:
QTextStream out(stdout); out << "Qt rocks!" << Qt::endl;
Advertencia: QTextStream asume que string apunta a una cadena de texto, terminada por un carácter '\0'. Si no hay ningún carácter de terminación '\0', su aplicación puede bloquearse.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(const void *ptr)
Escribe ptr en el flujo como un número hexadecimal con una base.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(double f)
Escribe el doble f en el flujo.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(int i)
Escribe el int con signo i en el flujo.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(long i)
Escribe el long con signo i en el flujo.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator<<(qlonglong i)
Escribe el qlonglong i en el flujo.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator<<(qulonglong i)
Escribe el qulonglong i en el flujo.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator<<(unsigned int i)
Escribe el valor unsigned int i en el flujo.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator<<(unsigned long i)
Escribe el unsigned long i en el flujo.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator<<(unsigned short i)
Escribe el corto sin signo i en el flujo.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator>>(QChar &c)
Lee un carácter del flujo y lo almacena en c. Devuelve una referencia a QTextStream, por lo que se pueden anidar varios operadores. Ejemplo:
QTextStream in(file); QChar ch1, ch2, ch3; in >> ch1 >> ch2 >> ch3;
No se saltan los espacios en blanco.
QTextStream &QTextStream::operator>>(QString &str)
Lee una palabra del flujo y la almacena en str, luego devuelve una referencia al flujo. Las palabras están separadas por espacios en blanco (es decir, todos los caracteres para los que QChar::isSpace() devuelve true).
Se omiten los espacios en blanco iniciales.
QTextStream &QTextStream::operator>>(float &f)
Lee un número real del flujo y lo almacena en f, luego devuelve una referencia a QTextStream. El número se convierte al tipo correcto. Si no se detecta ningún número real en el flujo, f se establece en 0.0.
Como excepción especial, QTextStream permite que las cadenas "nan" e "inf" representen flotadores o dobles NAN e INF.
Se omiten los espacios en blanco.
QTextStream &QTextStream::operator>>(short &i)
Lee un número entero del flujo y lo almacena en i, luego devuelve una referencia a QTextStream. El número se convierte al tipo correcto antes de ser almacenado. Si no se detecta ningún número en el flujo, i se pone a 0.
Por defecto, QTextStream intentará detectar la base del número utilizando las siguientes reglas:
| Prefijo | Base |
|---|---|
| "0b" o "0B" | 2 (binario) |
| "0" seguido de "0-7" | 8 (octal) |
| "0" de lo contrario | 10 (decimal) |
| "0x" o "0X | 16 (hexadecimal) |
| "de "1" a "9 | 10 (decimal) |
Si llama a setIntegerBase(), puede especificar explícitamente la base entera. Esto desactivará la detección automática y acelerará ligeramente QTextStream.
Los espacios en blanco se omiten.
QTextStream &QTextStream::operator>>(QByteArray &array)
Convierte la palabra a UTF-8 y la almacena en array.
Se trata de una función sobrecargada.
Véase también QString::toLatin1().
QTextStream &QTextStream::operator>>(char &c)
Lee un carácter del flujo y lo almacena en c. El carácter del flujo se convierte a ISO-8859-1 antes de ser almacenado.
Se trata de una función sobrecargada.
Véase también QChar::toLatin1().
QTextStream &QTextStream::operator>>(char *c)
Convierte la palabra a UTF-8 y la almacena en c, terminada por un carácter '\0'. Si no hay ninguna palabra disponible, sólo se almacena el carácter '\0'.
Advertencia: Aunque conveniente, este operador es peligroso y debe usarse con cuidado. QTextStream asume que c apunta a un buffer con suficiente espacio para contener la palabra. Si el búfer es demasiado pequeño, la aplicación puede bloquearse. Para una palabra formada por n QChars, el buffer debe tener al menos 3*n+1 caracteres.
Si es posible, utilice el operador QByteArray en su lugar.
Se trata de una función sobrecargada.
[since 6.4] QTextStream &QTextStream::operator>>(char16_t &c)
Lee un carácter del flujo y lo almacena en c.
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.4.
QTextStream &QTextStream::operator>>(double &f)
Almacena el número real en el doble f.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator>>(int &i)
Almacena el entero en el int con signo i.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator>>(long &i)
Almacena el entero en el long con signo i.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator>>(qlonglong &i)
Almacena el entero en el qlonglong i.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator>>(qulonglong &i)
Almacena el entero en el qulonglong i.
Se trata de una función sobrecargada.
QTextStream &QTextStream::operator>>(unsigned int &i)
Almacena el entero en el unsigned int i.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator>>(unsigned long &i)
Almacena el entero en el unsigned long i.
Esta es una función sobrecargada.
QTextStream &QTextStream::operator>>(unsigned short &i)
Almacena el entero en el unsigned short i.
Esta es una función sobrecargada.
No miembros relacionados
QTextStreamManipulator qSetFieldWidth(int width)
Equivalente a QTextStream::setFieldWidth(width).
QTextStreamManipulator qSetPadChar(QChar ch)
Equivalente a QTextStream::setPadChar(ch).
QTextStreamManipulator qSetRealNumberPrecision(int precision)
Equivalente a QTextStream::setRealNumberPrecision(precision).
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.