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

Konstruiert neuen Dateistrom.

1) Standardkonstruktor: Konstruiert einen Stream, der keiner Datei zugeordnet ist: standardkonstruiert den std::basic_filebuf und konstruiert die Basis mit dem Zeiger auf diesen standardkonstruierten std::basic_filebuf Member.
2,3) Führt zunächst dieselben Schritte wie der Standardkonstruktor aus und assoziiert dann den Stream mit einer Datei durch Aufruf von rdbuf ( ) - > open ( filename, mode ) (siehe std::basic_filebuf::open für Details zu den Effekten dieses Aufrufs). Wenn der open() -Aufruf einen Nullzeiger zurückgibt, wird setstate ( failbit ) gesetzt. Überladung (3) wird nur bereitgestellt, wenn std :: filesystem :: path :: value_type nicht char ist. (seit C++17)
4,5) Gleich wie basic_fstream ( filename. c_str ( ) , mode ) . (5) nimmt nur dann an der Überladungsauflösung teil, wenn FsPath ein std::filesystem::path ist. (seit C++17)
6) Move-Konstruktor. Zuerst wird die Basisklasse aus other move-konstruiert (was den rdbuf() -Zeiger nicht beeinflusst), dann wird das std::basic_filebuf -Mitglied move-konstruiert, anschließend wird this - > set_rdbuf ( ) aufgerufen, um den neuen basic_filebuf als rdbuf() -Zeiger in der Basisklasse zu installieren.
7) Der Kopierkonstruktor ist gelöscht: Diese Klasse ist nicht kopierbar.

Inhaltsverzeichnis

Parameter

filename - der Name der zu öffnenden Datei
mode - gibt den Öffnungsmodus des Streams an. Folgende Konstanten und bitweises ODER zwischen ihnen können verwendet werden:
Constant Erklärung
app springt vor jedem Schreibvorgang zum Ende des Streams
binary öffnet im Binärmodus
in öffnet zum Lesen
out öffnet zum Schreiben
trunc verwirft den Inhalt des Streams beim Öffnen
ate springt unmittelbar nach dem Öffnen zum Ende des Streams
noreplace (C++23) öffnet im exklusiven Modus
other - ein anderer Dateistream, der als Quelle verwendet werden soll

Beispiel

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

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 460 C++98 das Standardargument von mode in Überladung (2)
fehlte (es ist in der Synopsis vorhanden)
hinzugefügt
LWG 3430 C++17 std::filesystem::path Überladung führte zu unerwünschten Konvertierungen vermieden durch Template-Implementierung

Siehe auch

öffnet eine Datei und verknüpft sie mit dem Stream
(öffentliche Elementfunktion)
öffnet eine Datei und konfiguriert sie als assoziierte Zeichensequenz
(öffentliche Elementfunktion von std::basic_filebuf<CharT,Traits> )
ersetzt den rdbuf ohne dessen Fehlerstatus zu löschen
(geschützte Elementfunktion)
konstruiert das Objekt
(öffentliche Elementfunktion von std::basic_iostream<CharT,Traits> )