Compartir vía


Clase basic_ifstream

Describe un objeto que controla la extracción de elementos y objetos codificados de un búfer de flujo de 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_ifstream : public basic_istream<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

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

Ejemplo

En el siguiente ejemplo se muestra cómo leer texto de un archivo.

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

Output

This is the contents of basic_ifstream_class.txt.

Constructores

Constructor Descripción
basic_ifstream Inicializa una nueva instancia de un objeto basic_ifstream.

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 basic_ifstream por el contenido del basic_ifstream 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 que no deja ninguna copia atrás.

Requisitos

Encabezado: <fstream>

Espacio de nombres: std

basic_ifstream::basic_ifstream

Construye un objeto de 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
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

El primer constructor inicializa la clase base al llamar a basic_istream(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_istream(sb). También inicializa sb al llamar a basic_filebuf<Elem, Tr> y luego a sb.open(_Filename, _Mode | ios_base::in). Si esta última función devuelve un puntero nulo, el constructor llama a setstate(failbit).

El cuarto constructor inicializa el objeto con el contenido de right, tratado como una referencia rvalue.

Para obtener más información, veabasic_istream, basic_filebuf, setstatey open.

Ejemplo

En el siguiente ejemplo se muestra cómo leer texto de un archivo. Para crear el archivo, vea el ejemplo 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

Cierra un archivo.

void close();

Comentarios

La función miembro llama a rdbuf :> close.

Ejemplo

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

basic_ifstream::is_open

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

Ejemplo

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

basic_ifstream::open

Abre un archivo.

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
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::in). Para obtener más información, vea rdbuf y basic_filebuf::open. Si se produce un error al abrir, la función llama a setstate(failbit), que puede producir una excepción ios_base::failure. Para obtener más información, vea setstate.

Ejemplo

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

basic_ifstream::operator=

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

basic_ifstream& operator=(basic_ifstream&& right);

Parámetros

right
Referencia rvalue a un objeto basic_ifstream.

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. Para obtener más información, vea Lvalues y Rvalues.

basic_ifstream::rdbuf

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

basic_filebuf<Elem, Tr> *rdbuf() const

Valor devuelto

Puntero a un objeto basic_filebuf que representa el búfer de flujo almacenado.

Ejemplo

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

basic_ifstream::swap

Intercambia el contenido de dos objetos basic_ifstream.

void swap(basic_ifstream& right);

Parámetros

right
Referencia a otro búfer de secuencia.

Comentarios

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

Consulte también

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