Clase basic_ofstream

Describe un objeto que controla la inserción de elementos y objetos codificados en un búfer de flujo de la clase basic_filebuf< Elem, Tr>, con elementos de tipo Elem, cuyos rasgos de caracteres están determinados por la clase Tr. Para obtener más información, vea basic_filebuf.

Sintaxis

template <class Elem, class Tr = char_traits<Elem>>
class basic_ofstream : public basic_ostream<Elem, Tr>

Parámetros

Elem
Elemento básico del búfer del archivo.

Tr
Rasgos del elemento básico del búfer del archivo (normalmente char_traits<Elem>).

Comentarios

Cuando la especialización wchar_t de basic_ofstream escribe en el archivo, si el archivo se abre en modo de texto, escribirá una secuencia MBCS. La representación interna usará un búfer de caracteres wchar_t.

El objeto almacena un objeto de clase basic_filebuf< Elem, Tr>.

Ejemplo

En el siguiente ejemplo de código se muestra cómo crear un objeto basic_ofstream y escribir texto en él.

// basic_ofstream_class.cpp
// compile with: /EHsc
#include <fstream>

using namespace std;

int main(int argc, char **argv)
{
    ofstream ofs("ofstream.txt");
    if (!ofs.bad())
    {
        ofs << "Writing to a basic_ofstream object..." << endl;
        ofs.close();
    }
}

Constructores

Constructor Descripción
basic_ofstream Crea un objeto de tipo basic_ofstream.

Funciones miembro

Función de miembro Descripción
close Cierra un archivo.
is_open Determina si un archivo está abierto.
open Abre un archivo.
rdbuf Devuelve la dirección del búfer de secuencia almacenado.
swap Intercambia el contenido de este basic_ofstream con el contenido del basic_ofstream proporcionado.

Operadores

Operador Descripción
operator= Asigna el contenido de este objeto de secuencia. Se trata de una asignación de movimiento que implica un rvalue reference que no deja ninguna copia atrás.

Requisitos

Encabezado<fstream>:

Espacio de nombres:std

basic_ofstream::basic_ofstream

Crea un objeto de tipo basic_ofstream.

basic_ofstream();

explicit basic_ofstream(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

explicit basic_ofstream(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

basic_ofstream(
    basic_ofstream&& right);

Parámetros

_Filename
Nombre del archivo que se va a abrir.

_Mode
Una de las enumeraciones de ios_base::openmode.

_Prot
Protección predeterminada de apertura del archivo, equivalente al parámetro shflag de _fsopen, _wfsopen.

right
Referencia a un valor R al objeto basic_ofstream que se usa para inicializar este objeto basic_ofstream.

Comentarios

El primer constructor inicializa la clase base al llamar a basic_ostream(sb), donde sb es el objeto almacenado de clase basic_filebuf< Elem, Tr>. También inicializa sb al llamar a basic_filebuf<Elem, Tr>.

El segundo y el tercer constructor inicializan la clase base al llamar a basic_ostream( sb). También inicializa sb mediante una llamada a basic_filebuf<Elem, Tr> y, después sb.open( _Filename, _Mode | ios_base::out). Si esta última función devuelve un puntero setstate(failbit), el constructor llama a NULL.

El cuarto constructor es una función de copia. Inicializa el objeto con el contenido de right, tratado como una referencia a un valor R.

Para obtener más información, vea basic_ostream, open y setstate.

Ejemplo

En el siguiente ejemplo de código se muestra cómo crear un objeto basic_ofstream y escribir texto en él.

// basic_ofstream_ctor.cpp
// compile with: /EHsc
#include <fstream>

using namespace std;

int main(int argc, char **argv)
{
    ofstream ofs("C:\\ofstream.txt");
    if (!ofs.bad())
    {
        ofs << "Writing to a basic_ofstream object..." << endl;
        ofs.close();
    }
}

basic_ofstream::close

Cierra un archivo.

void close();

Comentarios

La función miembro llama a rdbuf->close. Para obtener más información, vea rdbuf y close.

Ejemplo

Consulte basic_filebuf::close para ver un ejemplo en el que se usa close.

basic_ofstream::is_open

Indica si un archivo está abierto.

bool is_open() const;

Valor devuelto

true si el archivo está abierto; de lo contrario, false.

Comentarios

La función miembro devuelve rdbuf->is_open. Para obtener más información, vea rdbuf y is_open.

Ejemplo

// basic_ofstream_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main( )
{
   using namespace std;
   ifstream file;
   // Open and close with a basic_filebuf
   file.rdbuf( )->open( "basic_ofstream_is_open.txt", ios::in );
   file.close( );
   if (file.is_open())
      cout << "it's open" << endl;
   else
      cout << "it's closed" << endl;
}

basic_ofstream::open

Abre un archivo.

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const char* _Filename,
    ios_base::openmode _Mode);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::out,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode);

Parámetros

_Filename
Nombre del archivo que se va a abrir.

_Mode
Una de las enumeraciones de ios_base::openmode.

_Prot
Protección predeterminada de apertura del archivo, equivalente al parámetro shflag de _fsopen, _wfsopen.

Comentarios

La función miembro llama a rdbuf -> open(_ Filename, _Mode | ios_base::out). Si esa función devuelve un puntero NULL, la función llama a setstate(failbit).

Para obtener más información, vea rdbuf, open y setstate.

Ejemplo

Consulte basic_filebuf::open para ver un ejemplo en el que se usa open.

basic_ofstream::operator=

Asigna el contenido de este objeto de secuencia. Se trata de una asignación de movimiento que implica un rvalue reference que no deja ninguna copia atrás.

basic_ofstream& operator=(basic_ofstream&& right);

Parámetros

right
Referencia a un valor R a un objeto basic_ofstream.

Valor devuelto

Devuelve *this.

Comentarios

El operador de miembro reemplaza el contenido del objeto por el contenido de right, que se trata como referencia rvalue.

basic_ofstream::rdbuf

Devuelve la dirección del búfer de secuencia almacenado.

basic_filebuf<Elem, Tr> *rdbuf() const

Valor devuelto

Devuelve la dirección del búfer de secuencia almacenado.

Ejemplo

Consulte basic_filebuf::close para ver un ejemplo en el que se usa rdbuf.

basic_ofstream::swap

Intercambia el contenido de dos objetos basic_ofstream.

void swap(basic_ofstream& right);

Parámetros

right
Referencia lvalue a otro objeto basic_ofstream.

Comentarios

La función miembro intercambia el contenido de este objeto por el contenido de right.

Consulte también

basic_ostream (clase)
Seguridad para subprocesos en la biblioteca estándar de C++
Programación de iostream
Convenciones de iostreams