Namespaces
Variants

std:: basic_ofstream

From cppreference.net
< cpp ‎ | io
Definido en el encabezado <fstream>
template <

class CharT,
class Traits = std:: char_traits < CharT >

> class basic_ofstream : public std:: basic_ostream < CharT, Traits >

La plantilla de clase basic_ofstream implementa operaciones de salida de alto nivel en flujos basados en archivos. Interconecta un búfer de flujo basado en archivos ( std::basic_filebuf ) con la interfaz de alto nivel de ( std::basic_ostream ).

Una implementación típica de std::basic_ofstream contiene solo un miembro de datos no derivado: una instancia de std:: basic_filebuf < CharT, Traits > .

cpp/io/ios base cpp/io/basic ios cpp/io/basic ostream std-basic ofstream-inheritance.svg

Diagrama de herencia

Se proporcionan varios typedefs para tipos de caracteres comunes:

Definido en el encabezado <fstream>
Tipo Definición
std::ofstream std :: basic_ofstream < char >
std::wofstream std :: basic_ofstream < wchar_t >

Contenidos

Tipos de miembros

Tipo de miembro Definición
char_type CharT
traits_type Traits ; el programa está mal formado si Traits::char_type no es CharT .
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type
native_handle_type (C++26) tipo definido por la implementación que es TriviallyCopyable y semiregular

Funciones miembro

construye el flujo de archivo
(función miembro pública)
(destructor)
[virtual] (implicitly declared)
destruye el basic_ofstream y el búfer asociado, cierra el archivo
(función miembro pública virtual)
(C++11)
mueve el flujo de archivo
(función miembro pública)
(C++11)
intercambia dos flujos de archivo
(función miembro pública)
devuelve el objeto de dispositivo de archivo subyacente
(función miembro pública)
devuelve el manejador definido por la implementación subyacente
(función miembro pública)
Operaciones de archivo
verifica si el flujo tiene un archivo asociado
(función miembro pública)
abre un archivo y lo asocia con el flujo
(función miembro pública)
cierra el archivo asociado
(función miembro pública)

Funciones no miembro

especializa el algoritmo std::swap
(plantilla de función)

Heredado de std:: basic_ostream

Funciones miembro

Salida formateada
inserta datos formateados
(función miembro pública de std::basic_ostream<CharT,Traits> )
Salida sin formato
inserta un carácter
(función miembro pública de std::basic_ostream<CharT,Traits> )
inserta bloques de caracteres
(función miembro pública de std::basic_ostream<CharT,Traits> )
Posicionamiento
devuelve el indicador de posición de salida
(función miembro pública de std::basic_ostream<CharT,Traits> )
establece el indicador de posición de salida
(función miembro pública de std::basic_ostream<CharT,Traits> )
Misceláneos
sincroniza con el dispositivo de almacenamiento subyacente
(función miembro pública de std::basic_ostream<CharT,Traits> )

Clases miembro

implementa la lógica básica para preparar el flujo para operaciones de salida
(clase miembro pública de std::basic_ostream<CharT,Traits> )

Heredado de std:: basic_ios

Tipos de miembro

Tipo de miembro Definición
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Funciones miembro

Funciones de estado
verifica que no ha ocurrido ningún error, es decir, las operaciones de E/S están disponibles
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si se ha alcanzado el fin de archivo
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error irrecuperable
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica si ha ocurrido un error (sinónimo de fail() )
(función miembro pública de std::basic_ios<CharT,Traits> )
verifica que no ha ocurrido ningún error (sinónimo de ! fail() )
(función miembro pública de std::basic_ios<CharT,Traits> )
devuelve las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
establece las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
modifica las banderas de estado
(función miembro pública de std::basic_ios<CharT,Traits> )
Formato
copia información de formato
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el carácter de relleno
(función miembro pública de std::basic_ios<CharT,Traits> )
Misceláneos
gestiona la máscara de excepciones
(función miembro pública de std::basic_ios<CharT,Traits> )
establece la configuración regional
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el búfer de flujo asociado
(función miembro pública de std::basic_ios<CharT,Traits> )
gestiona el flujo vinculado
(función miembro pública de std::basic_ios<CharT,Traits> )
reduce caracteres
(función miembro pública de std::basic_ios<CharT,Traits> )
amplía caracteres
(función miembro pública de std::basic_ios<CharT,Traits> )

Heredado de std:: ios_base

Funciones miembro

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

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 en el 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 monetario 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 de flujo irrecuperable
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 de callback
(typedef)

Notas

Macro de prueba de características Valor Estándar Característica
__cpp_lib_fstream_native_handle 202306L (C++26) Soporte para manejadores nativos

Ejemplo

#include <fstream>
#include <iostream>
#include <string>
int main()
{
    std::string filename = "Test.b";
    {
        std::ofstream ostrm(filename, std::ios::binary);
        double d = 3.14;
        ostrm.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
        ostrm << 123 << "abc" << '\n';                      // text output
    }
    // read back
    std::ifstream istrm(filename, std::ios::binary);
    double d;
    istrm.read(reinterpret_cast<char*>(&d), sizeof d);
    int n;
    std::string s;
    istrm >> n >> s;
    std::cout << " read back: " << d << ' ' << n << ' ' << s << '\n';
}

Salida:

read back: 3.14 123 abc