Classe basic_ofstream

Descreve um objeto que controla a inserção de elementos e objetos codificados em um buffer de fluxo da classe basic_filebuf< Elem, Tr>, com elementos do tipo Elem cujas características dos caracteres são determinadas pela classe Tr. Para obter mais informações, consulte basic_filebuf.

Sintaxe

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

Parâmetros

Elem
O elemento básico no buffer de arquivo.

Tr
As características do elemento básico no buffer de arquivo (geralmente char_traits<Elem>).

Comentários

Quando a especialização wchar_t de basic_ofstream é gravada no arquivo, se o arquivo for aberto no modo de texto, ele gravará uma sequência MBCS. A representação interna usará um buffer de wchar_t caracteres.

O objeto armazena um objeto da classe basic_filebuf< Elem, Tr>.

Exemplo

O exemplo a seguir mostra como criar um objeto basic_ofstream e escrever texto para ele.

// 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();
    }
}

Construtores

Construtor Descrição
basic_ofstream Cria um objeto do tipo basic_ofstream.

Funções de membro

Função de membro Descrição
close Fecha um arquivo.
is_open Determina se um arquivo está aberto.
open Abre um arquivo.
rdbuf Retorna o endereço do buffer de fluxo armazenado.
swap Troca o conteúdo desse basic_ofstream pelo conteúdo do basic_ofstream fornecido.

Operadores

Operador Descrição
operator= Atribui o conteúdo desse objeto de fluxo. Essa é uma atribuição de movimentação que envolve um rvalue reference que não deixa uma cópia para trás.

Requisitos

Cabeçalho<fstream>:

Namespace:std

basic_ofstream::basic_ofstream

Cria um objeto do 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
O nome do arquivo a ser aberto.

_Mode
Uma das enumerações em ios_base::openmode.

_Prot
A proteção de abertura de arquivo padrão, equivalente ao parâmetro shflag em _fsopen, _wfsopen.

right
A referência rvalue para o objeto basic_ofstream que está sendo usado para inicializar este objeto basic_ofstream.

Comentários

O primeiro construtor inicializa a classe base chamando basic_ostream(sb), em que sb é o objeto armazenado da classe basic_filebuf< Elem, Tr>. Também inicializa sb chamando basic_filebuf<Elem, Tr>.

O segundo e o terceiro construtores inicializam a classe base chamando basic_ostream( sb). Ele também inicializa sb chamando basic_filebuf<Elem, Tr> e, em seguida, sb.open( _Filename, _Mode | ios_base::out). Se a última função retornar um ponteiro NULL, o construtor chamará setstate(failbit).

O quarto construtor é uma função de cópia. Ele inicializa o objeto com o conteúdo de right tratado como uma referência rvalue.

Para obter mais informações, consulte basic_ostream, open e setstate.

Exemplo

O exemplo a seguir mostra como criar um objeto basic_ofstream e escrever texto para ele.

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

Fecha um arquivo.

void close();

Comentários

Essa função membro chama rdbuf->close. Para obter mais informações, consulte rdbuf e close.

Exemplo

Confira basic_filebuf::close para ver um exemplo que usa close.

basic_ofstream::is_open

Indica se um arquivo está aberto.

bool is_open() const;

Valor de Devolução

true se o arquivo estiver aberto, false caso contrário.

Comentários

A função membro retorna rdbuf->is_open. Para obter mais informações, consulte rdbuf e is_open.

Exemplo

// 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 um arquivo.

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
O nome do arquivo a ser aberto.

_Mode
Uma das enumerações em ios_base::openmode.

_Prot
A proteção de abertura de arquivo padrão, equivalente ao parâmetro shflag em _fsopen, _wfsopen.

Comentários

Essa função membro chama rdbuf -> open(_ Filename, _Mode | ios_base::out). Se essa função retornar um ponteiro NULL, a função chamará setstate(failbit).

Para obter mais informações, consulte rdbuf, open e setstate.

Exemplo

Confira basic_filebuf::open para ver um exemplo que usa open.

basic_ofstream::operator=

Atribui o conteúdo desse objeto de fluxo. Essa é uma atribuição de movimentação que envolve um rvalue reference que não deixa uma cópia para trás.

basic_ofstream& operator=(basic_ofstream&& right);

Parâmetros

right
Uma referência rvalue a um objeto basic_ofstream.

Valor de Devolução

Retorna *this.

Comentários

O operador membro substitui o conteúdo do objeto usando o conteúdo de right, tratado como uma referência rvalue.

basic_ofstream::rdbuf

Retorna o endereço do buffer de fluxo armazenado.

basic_filebuf<Elem, Tr> *rdbuf() const

Valor de Devolução

Retorna o endereço do buffer de fluxo armazenado.

Exemplo

Confira basic_filebuf::close para ver um exemplo que usa rdbuf.

basic_ofstream::swap

Troca o conteúdo de dois basic_ofstream objetos.

void swap(basic_ofstream& right);

Parâmetros

right
Uma referência lvalue a outro objeto basic_ofstream.

Comentários

A função membro troca o conteúdo desse objeto pelo conteúdo de right.

Confira também

Classe basic_ostream
Acesso Thread-Safe na Biblioteca Padrão C++
Programação iostream
Convenções iostreams