Namespaces
Variants

std::basic_ofstream<CharT,Traits>:: basic_ofstream

From cppreference.net

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

std:: ios_base :: openmode mode

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

std:: ios_base :: openmode mode

= std:: ios_base :: out ) ;
(3) (seit C++17)
explicit basic_ofstream ( const std:: string & filename,

std:: ios_base :: openmode mode

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

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

= std:: ios_base :: out ) ;
(5) (seit C++17)
basic_ofstream ( basic_ofstream && other ) ;
(6) (seit C++11)
basic_ofstream ( const basic_ofstream & 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 | std:: ios_base :: out ) (siehe std::basic_filebuf::open für Details zu den Auswirkungen 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_ofstream ( filename. c_str ( ) , mode ) . (5) nimmt nur dann an der Überladungsauflösung teil, wenn FsPath std::filesystem::path ist. (seit C++17) Beachten Sie, dass trotz des Standardmodus out die Effekte identisch mit den Effekten von out | trunc sind, wie in std::filebuf::open beschrieben.
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:
Konstante 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 weiterer Dateistream, der als Quelle verwendet werden soll

Beispiel

#include <fstream>
#include <string>
#include <utility>
int main()
{
    std::ofstream f0;
    std::ofstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::ofstream f2(name);
    std::ofstream 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 Korrigiertes Verhalten
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_ostream<CharT,Traits> )