Compartilhar via


Classe basic_ifstream

Descreve um objeto que controla a extração de elementos e objetos codificados de 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_ifstream : public basic_istream<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 da classe basic_filebuf<Elem, Tr>.

Exemplo

O exemplo a seguir mostra como ler texto de um arquivo.

// basic_ifstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_class.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

Entrada: basic_ifstream_class.txt

This is the contents of basic_ifstream_class.txt.

Saída

This is the contents of basic_ifstream_class.txt.

Construtores

Construtor Descrição
basic_ifstream Inicializa uma nova instância de um objeto basic_ifstream.

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_ifstream pelo conteúdo do basic_ifstream 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 que não deixa uma cópia para trás.

Requisitos

Cabeçalho: <fstream>

Namespace: std

basic_ifstream::basic_ifstream

Constrói um objeto do tipo basic_ifstream.

basic_ifstream();

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

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

basic_ifstream(basic_ifstream&& 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_istream(sb), em que sb é o objeto armazenado da classe basic_filebuf<Elem, Tr>. Ele também inicializa sb chamando basic_filebuf<Elem, Tr>.

O segundo e o terceiro construtores inicializam a classe base chamando basic_istream(sb). Também inicializa sb chamando basic_filebuf<Elem, Tr> e, em seguida, sb.open(_Filename, _Mode | ios_base::in). 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, tratado como uma referência rvalue.

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

Exemplo

O exemplo a seguir mostra como ler texto de um arquivo. Para criar o arquivo, consulte o exemplo de basic_ofstream::basic_ofstream.

// basic_ifstream_ctor.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_ctor.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

basic_ifstream::close

Fecha um arquivo.

void close();

Comentários

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

Exemplo

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

basic_ifstream::is_open

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

Exemplo

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

basic_ifstream::open

Abre um arquivo.

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    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,
    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::in). Para obter mais informações, consulte rdbuf e basic_filebuf::open. Se a abertura falhar, a função chamará setstate(failbit), o que poderá gerar uma exceção ios_base::failure. Para obter mais informações, consulte setstate.

Exemplo

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

basic_ifstream::operator=

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

basic_ifstream& operator=(basic_ifstream&& right);

Parâmetros

right
Uma referência rvalue a um objeto basic_ifstream.

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 de rvalue. Para obter mais informações, consulte Lvalues e Rvalues.

basic_ifstream::rdbuf

Retorna o endereço do buffer de fluxo armazenado.

basic_filebuf<Elem, Tr> *rdbuf() const

Valor de retorno

Um ponteiro para um objeto basic_filebuf que representa o buffer de fluxo armazenado.

Exemplo

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

basic_ifstream::swap

Troca o conteúdo de dois basic_ifstream objetos.

void swap(basic_ifstream& right);

Parâmetros

right
Uma referência a outro buffer de fluxo.

Comentários

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

Confira também

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