Namespaces
Variants

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

From cppreference.net

(1)
void open ( const std :: filesystem :: path :: value_type * Dateiname,

std:: ios_base :: openmode Modus

= std:: ios_base :: in | std:: ios_base :: out ) ;
(2) (seit C++17)
(3) (seit C++11)
(4) (seit C++17)

Öffnet und verknüpft die Datei mit dem Namen filename mit dem Dateistrom.

Ruft bei Erfolg clear ( ) auf. Ruft bei Fehler setstate ( failbit ) auf.

1,2) Effektiv ruft rdbuf ( ) - > open ( filename, mode ) auf (siehe std::basic_filebuf::open für Details zu den Effekten dieses Aufrufs). Überladung (2) wird nur bereitgestellt, wenn std::filesystem::path::value_type nicht char ist. (seit C++17)
3,4) Ruft effektiv (1,2) auf, als ob durch open ( filename. c_str ( ) , mode ) .

Inhaltsverzeichnis

Parameter

filename - der Name der zu öffnenden Datei
mode - gibt den Öffnungsmodus des Streams an. Es handelt sich um einen BitmaskType , die folgenden Konstanten sind definiert:
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

Beispiel

#include <fstream>
#include <iostream>
#include <string>
int main()
{
    std::string filename = "example.123";
    std::fstream fs;
    fs.open(filename);
    if (!fs.is_open())
    {
        fs.clear();
        fs.open(filename, std::ios::out); // create file
        fs.close();
        fs.open(filename);
    }
    std::cout << std::boolalpha;
    std::cout << "fs.is_open() = " << fs.is_open() << '\n';
    std::cout << "fs.good() = " << fs.good() << '\n';
}

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 22 C++98 Es war unklar, wie sich der Fehlerzustand bei erfolgreichem Öffnen ändert Der Fehlerzustand bleibt unverändert
LWG 409 C++98 Der Fehlerzustand blieb bei erfolgreichem Öffnen unverändert Er wird gelöscht [1]
LWG 460 C++98 Das Standardargument von mode in Überladung (1)
fehlte (es ist in der Synopsis vorhanden)
Hinzugefügt
  1. Die Resolution des LWG Issues #22 wird überschrieben.

Siehe auch

prüft, ob der Stream eine zugeordnete Datei hat
(öffentliche Elementfunktion)
schließt die zugeordnete Datei
(öffentliche Elementfunktion)
öffnet eine Datei und konfiguriert sie als zugeordnete Zeichensequenz
(öffentliche Elementfunktion von std::basic_filebuf<CharT,Traits> )