Namespaces
Variants

std:: basic_fstream

From cppreference.net
< cpp ‎ | io
Definiert im Header <fstream>
template <

class CharT,
class Traits = std:: char_traits < CharT >

> class basic_fstream : public std:: basic_iostream < CharT, Traits >

Die Klassenvorlage basic_fstream implementiert hochrangige Eingabe-/Ausgabeoperationen auf dateibasierten Streams. Sie verbindet einen dateibasierten Streampuffer ( std::basic_filebuf ) mit der hochrangigen Schnittstelle von ( std::basic_iostream ).

Eine typische Implementierung von std::basic_fstream enthält nur ein einziges nicht abgeleitetes Datenelement: eine Instanz von std:: basic_filebuf < CharT, Traits > .

cpp/io/ios base cpp/io/basic ios cpp/io/basic istream cpp/io/basic ostream cpp/io/basic iostream std-basic fstream-inheritance.svg

Vererbungsdiagramm

Es werden mehrere Typdefinitionen für gängige Zeichentypen bereitgestellt:

Definiert im Header <fstream>
Typ Definition
std::fstream std :: basic_fstream < char >
std::wfstream std :: basic_fstream < wchar_t >

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedertyp Definition
char_type CharT
traits_type Traits ; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist.
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type
native_handle_type (C++26) implementierungsdefinierter Typ, der TriviallyCopyable und semiregular ist

Memberfunktionen

Konstruiert den Dateistrom
(öffentliche Elementfunktion)
(destructor)
[virtual] (implicitly declared)
zerstört den basic_fstream und den zugehörigen Puffer, schließt die Datei
(virtuelle öffentliche Elementfunktion)
(C++11)
verschiebt den Dateistrom
(öffentliche Elementfunktion)
(C++11)
tauscht zwei Dateiströme
(öffentliche Elementfunktion)
gibt das zugrundeliegende Rohdateigerät-Objekt zurück
(öffentliche Elementfunktion)
gibt das zugrundeliegende implementierungsdefinierte Handle zurück
(öffentliche Elementfunktion)
Dateioperationen
prüft, ob der Strom eine zugeordnete Datei hat
(öffentliche Elementfunktion)
öffnet eine Datei und ordnet sie dem Strom zu
(öffentliche Elementfunktion)
schließt die zugeordnete Datei
(öffentliche Elementfunktion)

Nicht-Member-Funktionen

spezialisiert den std::swap Algorithmus
(Funktions-Template)

Geerbt von std:: basic_istream

Elementfunktionen

Formatierte Eingabe
extrahiert formatierte Daten
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
Unformatierte Eingabe
extrahiert Zeichen
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
liest das nächste Zeichen ohne es zu extrahieren
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
gibt ein Zeichen zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
gibt ein Zeichen in den Eingabestrom zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
extrahiert Zeichen bis zum angegebenen Zeichen
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
extrahiert und verwirft Zeichen bis zum angegebenen Zeichen
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
extrahiert Zeichenblöcke
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
extrahiert bereits verfügbare Zeichenblöcke
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
gibt die Anzahl der zuletzt extrahierten Zeichen zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
Positionierung
gibt die Eingabepositionsanzeige zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
setzt die Eingabepositionsanzeige
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
Sonstiges
synchronisiert mit dem zugrundeliegenden Speichergerät
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )

Elementklassen

implementiert grundlegende Logik zur Vorbereitung des Streams für Eingabeoperationen
(öffentliche Elementklasse von std::basic_istream<CharT,Traits> )

Geerbt von std:: basic_ostream

Elementfunktionen

Formatierte Ausgabe
fügt formatierte Daten ein
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
Unformatierte Ausgabe
fügt ein Zeichen ein
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
fügt Zeichenblöcke ein
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
Positionierung
gibt die Ausgabepositionsanzeige zurück
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
setzt die Ausgabepositionsanzeige
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )
Verschiedenes
synchronisiert mit dem zugrundeliegenden Speichergerät
(öffentliche Elementfunktion von std::basic_ostream<CharT,Traits> )

Elementklassen

implementiert grundlegende Logik zur Vorbereitung des Streams für Ausgabeoperationen
(öffentliche Elementklasse von std::basic_ostream<CharT,Traits> )

Geerbt von std:: basic_ios

Member-Typen

Member-Typ Definition
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Member-Funktionen

Status-Funktionen
prüft, ob kein Fehler aufgetreten ist, d.h. E/A-Operationen verfügbar sind
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
prüft, ob das Dateiende erreicht wurde
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
prüft, ob ein Fehler aufgetreten ist
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
prüft, ob ein nicht behebbarer Fehler aufgetreten ist
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
prüft, ob ein Fehler aufgetreten ist (Synonym für fail() )
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
prüft, ob kein Fehler aufgetreten ist (Synonym für ! fail() )
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
gibt Status-Flags zurück
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
setzt Status-Flags
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
modifiziert Status-Flags
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
Formatierung
kopiert Formatierungsinformationen
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
verwaltet das Füllzeichen
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
Sonstiges
verwaltet die Ausnahmemaske
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
setzt das Locale
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
verwaltet den assoziierten Streampuffer
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
verwaltet den verknüpften Stream
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
verengt Zeichen
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )
erweitert Zeichen
(öffentliche Member-Funktion von std::basic_ios<CharT,Traits> )

Geerbt von std:: ios_base

Memberfunktionen

Formatierung
verwaltet Formatierungsflags
(öffentliche Elementfunktion von std::ios_base )
setzt spezifische Formatierungsflags
(öffentliche Elementfunktion von std::ios_base )
löscht spezifische Formatierungsflags
(öffentliche Elementfunktion von std::ios_base )
verwaltet Dezimalgenauigkeit von Gleitkommaoperationen
(öffentliche Elementfunktion von std::ios_base )
verwaltet Feldbreite
(öffentliche Elementfunktion von std::ios_base )
Locales
setzt Locale
(öffentliche Elementfunktion von std::ios_base )
gibt aktuelle Locale zurück
(öffentliche Elementfunktion von std::ios_base )
Internes erweiterbares Array
[static]
gibt eine programmweit eindeutige Ganzzahl zurück, die sicher als Index für pword() und iword() verwendet werden kann
(öffentliche statische Elementfunktion von std::ios_base )
vergrößert bei Bedarf den privaten Speicher und ermöglicht Zugriff auf das long Element am gegebenen Index
(öffentliche Elementfunktion von std::ios_base )
vergrößert bei Bedarf den privaten Speicher und ermöglicht Zugriff auf das void * Element am gegebenen Index
(öffentliche Elementfunktion von std::ios_base )
Verschiedenes
registriert Ereignis-Callback-Funktion
(öffentliche Elementfunktion von std::ios_base )
legt fest, ob C++ und C I/O-Bibliotheken interoperabel sind
(öffentliche statische Elementfunktion von std::ios_base )
Elementklassen
Stream-Exception
(öffentliche Elementklasse von std::ios_base )
initialisiert Standard-Stream-Objekte
(öffentliche Elementklasse von std::ios_base )

Mitgliedstypen und Konstanten

Typ Erklärung
Stream-Öffnungsmodus-Typ

Folgende Konstanten sind ebenfalls 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

(Typedef)
Formatierungsflags-Typ

Die folgenden Konstanten sind ebenfalls definiert:

Konstante Erklärung
dec Dezimalbasis für Integer-Ein-/Ausgabe verwenden: siehe std::dec
oct Oktalbasis für Integer-Ein-/Ausgabe verwenden: siehe std::oct
hex Hexadezimalbasis für Integer-Ein-/Ausgabe verwenden: siehe std::hex
basefield dec | oct | hex . Nützlich für Maskierungsoperationen
left Linksbündige Ausrichtung (fügt Füllzeichen rechts hinzu): siehe std::left
right Rechtsbündige Ausrichtung (fügt Füllzeichen links hinzu): siehe std::right
internal Interne Ausrichtung (fügt Füllzeichen an internem Designationspunkt hinzu): siehe std::internal
adjustfield left | right | internal . Nützlich für Maskierungsoperationen
scientific Gleitkommatypen in wissenschaftlicher Notation generieren, oder Hex-Notation wenn kombiniert mit fixed : siehe std::scientific
fixed Gleitkommatypen in Festkommanotation generieren, oder Hex-Notation wenn kombiniert mit scientific : siehe std::fixed
floatfield scientific | fixed . Nützlich für Maskierungsoperationen
boolalpha Booleschen Typ im alphanumerischen Format einfügen und extrahieren: siehe std::boolalpha
showbase Präfix für numerische Basis bei Integer-Ausgabe generieren, Währungsindikator bei monetärer Ein-/Ausgabe erfordern: siehe std::showbase
showpoint Dezimalpunkt-Zeichen bedingungslos für Gleitkommazahlen-Ausgabe generieren: siehe std::showpoint
showpos Plus-Zeichen für nicht-negative numerische Ausgabe generieren: siehe std::showpos
skipws Führende Leerzeichen vor bestimmten Eingabeoperationen überspringen: siehe std::skipws
unitbuf Ausgabe nach jeder Ausgabeoperation leeren: siehe std::unitbuf
uppercase Bestimmte Kleinbuchstaben durch entsprechende Großbuchstaben in bestimmten Ausgabeoperationen ersetzen: siehe std::uppercase

(Typdefinition)
Zustand des Stream-Typs

Die folgenden Konstanten sind ebenfalls definiert:

Konstante Erklärung
goodbit kein Fehler
badbit nicht behebbarer Stream-Fehler
failbit Eingabe-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit zugehörige Eingabesequenz hat das Dateiende erreicht

(Typdefinition)
Suchrichtungstyp

Folgende Konstanten sind ebenfalls definiert:

Konstante Erklärung
beg der Anfang eines Streams
end das Ende eines Streams
cur die aktuelle Position des Stream-Positionsindikators

(Typdefinition)
gibt den Ereignistyp an
(enum)
Callback-Funktionstyp
(typedef)

Hinweise

Feature-Test Makro Wert Std Funktion
__cpp_lib_fstream_native_handle 202306L (C++26) Native-Handle-Unterstützung

Beispiel

#include <fstream>
#include <iostream>
#include <string>
int main()
{
    std::string filename{"test.bin"};
    std::fstream s{filename, s.binary | s.trunc | s.in | s.out};
    if (!s.is_open())
        std::cout << "failed to open " << filename << '\n';
    else
    {
        // write
        double d{3.14};
        s.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
        s << 123 << "abc";                              // text output
        // for fstream, this moves the file position pointer (both put and get)
        s.seekp(0);
        // read
        d = 2.71828;
        s.read(reinterpret_cast<char*>(&d), sizeof d); // binary input
        int n;
        std::string str;
        if (s >> n >> str)                             // text input
            std::cout << "read back from file: " << d << ' ' << n << ' ' << str << '\n';
    }
}

Ausgabe:

read back from file: 3.14 123 abc

Siehe auch

Daten aus einem I/O-Stream in einen String einlesen
(Funktions-Template)