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
, setstate
y 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