std::basic_fstream<CharT,Traits>::open
Von cppreference.com
< cpp | io | basic fstream
| void open( const char* filename, = std::ios_base::in | std::ios_base::out ); |
(1) | |
| void open( const char* filename, = std::ios_base::in | std::ios_base::out ); |
(2) | (seit C++17) |
| void open( const std::string& filename, = std::ios_base::in | std::ios_base::out ); |
(3) | (seit C++11) |
| void open( const std::filesystem::path& filename, = std::ios_base::in | std::ios_base::out ); |
(4) | (seit C++17) |
Öffnet die Datei mit dem Namen filename und verknüpft sie mit dem Dateistrom.
Ruft clear() im Erfolgsfall auf. Ruft setstate(failbit) im Fehlerfall auf.
1,2) Ruft effektiv rdbuf()->open(filename, mode) auf (siehe std::basic_filebuf::open für Details zu den Auswirkungen dieses Aufrufs). Überladung (2) ist nur dann verfügbar, wenn
std::filesystem::path::value_type nicht char ist.(seit C++17)3,4) Ruft effektiv (1,2) auf, als ob open(filename.c_str(), mode) aufgerufen worden wäre.
Inhalt |
[bearbeiten] Parameter
| filename | - | der Name der zu öffnenden Datei | ||||||||||||||||
| mode | - | gibt den Öffnungsmodus des Streams an. Es ist ein BitmaskType, die folgenden Konstanten sind definiert
|
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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'; }
[bearbeiten] 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 22 | C++98 | Es war unklar, wie sich der Fehlerstatus nach einer erfolgreichen Öffnung ändert | Der Fehlerstatus bleibt unverändert |
| LWG 409 | C++98 | Der Fehlerstatus änderte sich bei einer erfolgreichen Öffnung nicht | Er wird gelöscht[1] |
| LWG 460 | C++98 | Das Standardargument von mode in Überladung (1) fehlte (es ist im Synopsis vorhanden) |
hinzugefügt |
- ↑ Die Auflösung von LWG-Problem #22 wird überschrieben.
[bearbeiten] Siehe auch
| prüft, ob der Stream eine zugeordnete Datei hat (public member function) | |
| schließt die zugeordnete Datei (public member function) | |
| öffnet eine Datei und konfiguriert sie als zugeordnete Zeichensequenz (public member function of std::basic_filebuf<CharT,Traits>) |