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