Namespaces
Variants

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

From 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) (depuis C++17)
(4) (depuis 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) (depuis C++17)
basic_fstream ( basic_fstream && other ) ;
(6) (depuis C++11)
basic_fstream ( const basic_fstream & rhs ) = delete ;
(7) (depuis C++11)

Construit un nouveau flux de fichier.

1) Constructeur par défaut : construit un flux qui n'est pas associé à un fichier : construit par défaut le std::basic_filebuf et construit la base avec le pointeur vers ce membre std::basic_filebuf construit par défaut.
2,3) Effectue d'abord les mêmes étapes que le constructeur par défaut, puis associe le flux à un fichier en appelant rdbuf ( ) - > open ( filename, mode ) (voir std::basic_filebuf::open pour les détails sur les effets de cet appel). Si l'appel à open() retourne un pointeur nul, positionne setstate ( failbit ) . La surcharge (3) n'est fournie que si std :: filesystem :: path :: value_type n'est pas char . (depuis C++17)
4,5) Identique à basic_fstream ( filename. c_str ( ) , mode ) . (5) participe à la résolution de surcharge seulement si FsPath est std::filesystem::path . (depuis C++17)
6) Constructeur de déplacement. D'abord, construit par déplacement la classe de base à partir de other (ce qui n'affecte pas le pointeur rdbuf() ), puis construit par déplacement le membre std::basic_filebuf , puis appelle this - > set_rdbuf ( ) pour installer le nouveau basic_filebuf comme pointeur rdbuf() dans la classe de base.
7) Le constructeur de copie est supprimé : cette classe n'est pas copiable.

Table des matières

Paramètres

filename - le nom du fichier à ouvrir
mode - spécifie le mode d'ouverture du flux. Les constantes suivantes et leur combinaison par OU binaire peuvent être utilisées :
Constante Explication
app se positionner en fin de flux avant chaque écriture
binary ouvrir en mode binaire
in ouvrir en lecture
out ouvrir en écriture
trunc vider le contenu du flux à l'ouverture
ate se positionner en fin de flux immédiatement après l'ouverture
noreplace (C++23) ouvrir en mode exclusif
other - un autre flux de fichier à utiliser comme source

Exemple

#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));
}

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement corrigé
LWG 460 C++98 l'argument par défaut de mode dans la surcharge (2)
était manquant (il est présent dans la synopsis )
ajouté
LWG 3430 C++17 std::filesystem::path la surcharge conduisait à des conversions indésirables évité en la transformant en template

Voir aussi

ouvre un fichier et l'associe au flux
(fonction membre publique)
ouvre un fichier et le configure comme séquence de caractères associée
(fonction membre publique de std::basic_filebuf<CharT,Traits> )
remplace le rdbuf sans effacer son état d'erreur
(fonction membre protégée)
construit l'objet
(fonction membre publique de std::basic_iostream<CharT,Traits> )