Namespaces
Variants

std:: ios_base

From cppreference.net
< cpp ‎ | io
Definido en el encabezado <ios>
class ios_base ;

La clase ios_base es una clase multipropósito que sirve como clase base para todas las clases de flujos de E/S. Mantiene varios tipos de datos:

1) información de estado: indicadores de estado del flujo.
2) información de control: indicadores que controlan el formato de las secuencias de entrada y salida y la configuración regional asociada.
3) almacenamiento privado: estructura de datos extensible indexada que permite tanto miembros long como void * , que puede implementarse como dos arreglos de longitud arbitraria o un solo arreglo de estructuras de dos elementos u otro contenedor.
4) callbacks: número arbitrario de funciones definidas por el usuario para ser llamadas desde imbue() , std::basic_ios::copyfmt() , y ~ios_base() .

La implementación típica mantiene constantes miembro correspondientes a todos los valores de fmtflags , iostate , openmode , y seekdir mostrados abajo, variables miembro para mantener la precisión actual, el ancho y las banderas de formato, la máscara de excepciones, el estado de error del búfer, un contenedor redimensionable que contiene las llamadas de retorno, la configuración regional actualmente imbucida, el almacenamiento privado, y una variable entera estática para xalloc() .

Contenidos

Funciones miembro

construye el objeto
(función miembro protegida)
[virtual]
destruye el objeto
(función miembro pública virtual)
asigna al stream
(función miembro pública)
Formato
gestiona flags de formato
(función miembro pública)
establece flag de formato específico
(función miembro pública)
limpia flag de formato específico
(función miembro pública)
gestiona precisión decimal de operaciones de punto flotante
(función miembro pública)
gestiona ancho de campo
(función miembro pública)
Configuraciones regionales
establece configuración regional
(función miembro pública)
devuelve la configuración regional actual
(función miembro pública)
Array extensible interno
[static]
devuelve un entero único a nivel de programa que es seguro usar como índice para pword() y iword()
(función miembro estática pública)
redimensiona el almacenamiento privado si es necesario y accede al elemento long en el índice dado
(función miembro pública)
redimensiona el almacenamiento privado si es necesario y accede al elemento void * en el índice dado
(función miembro pública)
Misceláneos
registra función de callback de eventos
(función miembro pública)
establece si las bibliotecas de E/S de C++ y C son interoperables
(función miembro estática pública)

Clases miembro

excepción de stream
(clase miembro pública)
inicializa objetos de stream estándar
(clase miembro pública)

Tipos de miembros y constantes

Tipo Explicación
tipo de modo de apertura de flujo

También se definen las siguientes constantes:

Constante Explicación
app buscar al final del flujo antes de cada escritura
binary abrir en modo binario
in abrir para lectura
out abrir para escritura
trunc descartar el contenido del flujo al abrir
ate buscar al final del flujo inmediatamente después de abrir
noreplace (C++23) abrir en modo exclusivo

(typedef)
tipo de banderas de formato

También se definen las siguientes constantes:

Constante Explicación
dec usar base decimal para E/S de enteros: ver std::dec
oct usar base octal para E/S de enteros: ver std::oct
hex usar base hexadecimal para E/S de enteros: ver std::hex
basefield dec | oct | hex . Útil para operaciones de enmascaramiento
left ajuste a la izquierda (añade caracteres de relleno a la derecha): ver std::left
right ajuste a la derecha (añade caracteres de relleno a la izquierda): ver std::right
internal ajuste interno (añade caracteres de relleno al punto designado interno): ver std::internal
adjustfield left | right | internal . Útil para operaciones de enmascaramiento
scientific generar tipos de punto flotante usando notación científica, o notación hexadecimal si se combina con fixed : ver std::scientific
fixed generar tipos de punto flotante usando notación fija, o notación hexadecimal si se combina con scientific : ver std::fixed
floatfield scientific | fixed . Útil para operaciones de enmascaramiento
boolalpha insertar y extraer el tipo bool en formato alfanumérico: ver std::boolalpha
showbase generar un prefijo que indica la base numérica para salida de enteros, requiere el indicador de moneda en E/S monetaria: ver std::showbase
showpoint generar un carácter de punto decimal incondicionalmente para salida de números de punto flotante: ver std::showpoint
showpos generar un carácter + para salida numérica no negativa: ver std::showpos
skipws omitir espacios en blanco iniciales antes de ciertas operaciones de entrada: ver std::skipws
unitbuf vaciar el buffer después de cada operación de salida: ver std::unitbuf
uppercase reemplazar ciertas letras minúsculas con sus equivalentes en mayúsculas en ciertas operaciones de salida: ver std::uppercase

(typedef)
tipo de estado del flujo

También se definen las siguientes constantes:

Constante Explicación
goodbit sin error
badbit error irreversible del flujo
failbit operación de entrada/salida fallida (error de formato o extracción)
eofbit la secuencia de entrada asociada ha alcanzado el fin de archivo

(typedef)
tipo de dirección de búsqueda

También se definen las siguientes constantes:

Constante Explicación
beg el inicio de un flujo
end el final de un flujo
cur la posición actual del indicador de posición del flujo

(typedef)
especifica el tipo de evento
(enum)
tipo de función callback
(typedef)
Tipos de miembros obsoletos
Tipo Explicación
io_state (obsoleto) tipo entero que puede usarse como iostate
open_mode (obsoleto) tipo entero que puede usarse como openmode
seek_dir (obsoleto) tipo entero que puede usarse como seekdir
streamoff (obsoleto) tipo no especificado que puede usarse como off_type , no necesariamente std::streamoff
streampos (obsoleto) tipo no especificado que puede usarse como pos_type , no necesariamente std::streampos
(hasta C++17)

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 1357
( N3110 )
C++98 std::ios_base definía operator~ , operator &
y operator | para los tipos openmode , fmtflags y
iostate , violando los requisitos de BitmaskType [1]
se eliminaron estas definiciones
  1. Un BitmaskType debe soportar operaciones bit a bit por sí mismo. El soporte para operaciones bit a bit no debe proporcionarse externamente.

Véase también

gestiona un búfer de flujo arbitrario
(plantilla de clase)