Classe basic_fstream

Descreve um objeto que controla a inserção e a extração de elementos e objetos codificados usando 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.

Sintaxe

template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<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

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

Observação

O ponteiro get e o ponteiro put de um objeto fstream NÃO são independentes um do outro. Se o ponteiro se mover, o mesmo ocorrerá com o ponteiro put.

Exemplo

O exemplo a seguir demonstra como criar um objeto basic_fstream que pode ser lido e gravado.

// basic_fstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    fstream fs("fstream.txt", ios::in | ios::out | ios::trunc);
    if (!fs.bad())
    {
        // Write to the file.
        fs << "Writing to a basic_fstream object..." << endl;
        fs.close();

        // Dump the contents of the file to cout.
        fs.open("fstream.txt", ios::in);
        cout << fs.rdbuf();
        fs.close();
    }
}
Writing to a basic_fstream object...

Construtores

Construtor Descrição
basic_fstream Constrói um objeto do tipo basic_fstream.

Funções de membro

Função de membro Descrição
close Fecha um arquivo.
is_open Determina se um arquivo está aberto.
abrir Abre um arquivo.
rdbuf Retorna o endereço do buffer de fluxo armazenado do tipo ponteiro para basic_filebuf<Elem, Tr>.
troca Troca o conteúdo desse objeto pelo conteúdo de outro objeto basic_fstream.

Requisitos

Cabeçalho:<fstream>

Namespace: std

basic_fstream::basic_fstream

Constrói um objeto do tipo basic_fstream.

basic_fstream();

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

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

basic_fstream(basic_fstream&& 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.

Comentários

O primeiro construtor inicializa a classe base chamando basic_iostream(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_iostream( sb). Também inicializa sb chamando basic_filebuf<Elem, Tr> e então sb.open(_ Filename, _Mode). Se a última função retornar um ponteiro nulo, o construtor chamará setstate(failbit).

O quarto construtor inicializa o objeto com o conteúdo de right, tratados como uma referência rvalue.

Exemplo

Consulte streampos para obter um exemplo que usa basic_fstream.

basic_fstream::fechar

Fecha um arquivo.

void close();

Comentários

A função membro chama rdbuf->close.

Exemplo

Consulte basic_filebuf::close para obter um exemplo de como usar close.

basic_fstream::is_open

Determina 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.

Exemplo

Consulte basic_filebuf::is_open para obter um exemplo de como usar is_open.

basic_fstream::aberto

Abre um arquivo.

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in | 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::in | 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

A função membro chama rdbuf->open(_ Filename, _Mode). Se essa função retornar um ponteiro nulo, a função chamará setstate(failbit).

Exemplo

Consulte basic_filebuf::open para obter um exemplo de como usar open.

basic_fstream::operador=

Atribui a esse objeto o conteúdo de um objeto de fluxo especificado. Essa é uma atribuição de movimentação que envolve um rvalue que não deixa uma cópia.

basic_fstream& operator=(basic_fstream&& right);

Parâmetros

direita
Uma referência lvalue a um objeto basic_fstream.

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 de rvalue.

basic_fstream::rdbuf

Retorna o endereço do buffer de fluxo armazenado do tipo ponteiro para basic_filebuf<Elem, Tr>.

basic_filebuf<Elem, Tr> *rdbuf() const

Valor de Devolução

O endereço do buffer de fluxo armazenado.

Exemplo

Consulte basic_filebuf::close para obter um exemplo de como usar rdbuf.

basic_fstream::swap

Troca o conteúdo de dois basic_fstream objetos.

void swap(basic_fstream& right);

Parâmetros

direita
Uma referência lvalue a um objeto basic_fstream.

Comentários

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

Confira também

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