Namespaces
Variants

std::basic_ifstream<CharT,Traits>:: basic_ifstream

From cppreference.net

basic_ifstream ( ) ;
(1)
explicit basic_ifstream ( const char * filename,

std:: ios_base :: openmode mode

= std:: ios_base :: in ) ;
(2)
explicit basic_ifstream ( const std :: filesystem :: path :: value_type * filename,

std:: ios_base :: openmode mode

= std:: ios_base :: in ) ;
(3) (desde C++17)
explicit basic_ifstream ( const std:: string & filename,

std:: ios_base :: openmode mode

= std:: ios_base :: in ) ;
(4) (desde C++11)
template < class FsPath >

explicit basic_ifstream ( const FsPath & filename,
std:: ios_base :: openmode mode

= std:: ios_base :: in ) ;
(5) (desde C++17)
basic_ifstream ( basic_ifstream && other ) ;
(6) (desde C++11)
basic_ifstream ( const basic_ifstream & rhs ) = delete ;
(7) (desde C++11)

Construye un nuevo flujo de archivo.

1) Constructor por defecto: construye un flujo que no está asociado a un archivo: construye por defecto el std::basic_filebuf y construye la base con el puntero a este miembro std::basic_filebuf construido por defecto.
2,3) Primero, realiza los mismos pasos que el constructor por defecto, luego asocia el flujo con un archivo llamando a rdbuf ( ) - > open ( filename, mode | std:: ios_base :: in ) (ver std::basic_filebuf::open para los detalles sobre los efectos de esa llamada). Si la llamada a open() retorna un puntero nulo, establece setstate ( failbit ) . La sobrecarga (3) solo se proporciona si std :: filesystem :: path :: value_type no es char . (desde C++17)
4,5) Igual que basic_ifstream ( filename. c_str ( ) , mode ) . (5) participa en la resolución de sobrecarga solo si FsPath es std::filesystem::path . (desde C++17)
6) Constructor de movimiento. Primero, construye por movimiento la clase base desde other (lo cual no afecta el puntero rdbuf() ), luego construye por movimiento el miembro std::basic_filebuf , y luego llama a this - > set_rdbuf ( ) para instalar el nuevo basic_filebuf como el puntero rdbuf() en la clase base.
7) El constructor de copia está eliminado: esta clase no es copiable.

Contenidos

Parámetros

filename - el nombre del archivo a abrir
mode - especifica el modo de apertura del flujo. Se pueden utilizar las siguientes constantes y operaciones OR bit a bit entre ellas:
Constant Explicación
app buscar al final del flujo antes de cada escritura
binary abrir en modo binario
in abrir para lectura
out abrir para escritura
trunc descartar el contenido del flujo al abrir
ate buscar al final del flujo inmediatamente después de abrir
noreplace (C++23) abrir en modo exclusivo
other - otro flujo de archivo para usar como fuente

Ejemplo

#include <fstream>
#include <string>
#include <utility>
int main()
{
    std::ifstream f0;
    std::ifstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::ifstream f2(name);
    std::ifstream f3(std::move(f1));
}

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3430 C++17 std::filesystem::path overload llevaba a conversiones no deseadas evitado al convertirlo en template

Véase también

abre un archivo y lo asocia con el flujo
(función miembro pública)
abre un archivo y lo configura como la secuencia de caracteres asociada
(función miembro pública de std::basic_filebuf<CharT,Traits> )
reemplaza el rdbuf sin limpiar su estado de error
(función miembro protegida)
construye el objeto
(función miembro pública de std::basic_istream<CharT,Traits> )