Namespaces
Variants

std::basic_fstream<CharT,Traits>:: basic_fstream

From es.cppreference.net

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

std:: ios_base :: openmode mode

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

std:: ios_base :: openmode mode

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

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

= std:: ios_base :: in | std:: ios_base :: out ) ;
(5) (desde C++17)
basic_fstream ( basic_fstream && other ) ;
(6) (desde C++11)
basic_fstream ( const basic_fstream & 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 ) (ver std::basic_filebuf::open para los detalles sobre los efectos de esa llamada). Si la llamada a open() devuelve 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_fstream ( 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 el 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::fstream f0;
    std::fstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::fstream f2(name);
    std::fstream 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 Se aplica a Comportamiento publicado Comportamiento correcto
LWG 460 C++98 el argumento por defecto de mode en la sobrecarga (2)
faltaba (está presente en la sinopsis )
añadido
LWG 3430 C++17 std::filesystem::path la sobrecarga conducía a conversiones no deseadas evitado al convertirla en plantilla

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_iostream<CharT,Traits> )