Namensräume
Varianten
Aktionen

std::basic_ifstream

Von cppreference.com
< cpp‎ | io
 
 
 
 
Definiert in Header <fstream>
template<

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

> class basic_ifstream : public std::basic_istream<CharT, Traits>

Die Klassenschablone basic_ifstream implementiert High-Level-Eingabeoperationen auf dateibasierten Streams. Sie verbindet einen dateibasierten Streambuffer (std::basic_filebuf) mit der High-Level-Schnittstelle von (std::basic_istream).

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

cpp/io/ios basecpp/io/basic ioscpp/io/basic istreamstd-basic ifstream-inheritance.svg

Vererbungdiagramm

Mehrere Typedefs für gängige Zeichentypen werden bereitgestellt

Definiert in Header <fstream>
Typ Definition
std::ifstream std::basic_ifstream<char>
std::wifstream std::basic_ifstream<wchar_t>

Inhalt

[bearbeiten] Member-Typen

Mitgliedertyp Definition
char_type CharT[bearbeiten]
traits_type Traits; das Programm ist fehlerhaft, wenn Traits::char_type nicht CharT ist.[bearbeiten]
int_type Traits::int_type[bearbeiten]
pos_type Traits::pos_type[bearbeiten]
off_type Traits::off_type[bearbeiten]
native_handle_type(C++26) implementierungsabhängiger Typ, der TriviallyCopyable und semiregular ist[edit]

[bearbeiten] Memberfunktionen

konstruiert den Datei-Stream
(public member function) [edit]
(Destruktor)
[virtual] (implizit deklariert)
Destruiert das basic_ifstream und den zugehörigen Puffer, schließt die Datei
(virtual public member function) [edit]
(C++11)
verschiebt den Datei-Stream
(public member function) [edit]
(C++11)
tauscht zwei Datei-Streams
(public member function) [edit]
gibt das zugrundeliegende Rohdatei-Geräteobjekt zurück
(public member function) [edit]
gibt den zugrundeliegenden implementierungsabhängigen Handle zurück
(public member function) [bearbeiten]
Dateioperationen
prüft, ob der Stream eine zugeordnete Datei hat
(public member function) [edit]
öffnet eine Datei und ordnet sie dem Stream zu
(public member function) [edit]
schließt die zugeordnete Datei
(public member function) [edit]

[bearbeiten] Nicht-Member-Funktionen

spezialisiert den Algorithmus std::swap
(Funktionsvorlage) [edit]

Abgeleitet von std::basic_istream

Memberfunktionen

Formatierte Eingabe
extrahiert formatierte Daten
(public member function of std::basic_istream<CharT,Traits>) [edit]
Unformatierte Eingabe
extrahiert Zeichen
(public member function of std::basic_istream<CharT,Traits>) [edit]
liest das nächste Zeichen ohne es zu extrahieren
(public member function of std::basic_istream<CharT,Traits>) [edit]
entfernt ein Zeichen aus dem Eingabestrom
(public member function of std::basic_istream<CharT,Traits>) [edit]
legt ein Zeichen in den Eingabestrom zurück
(public member function of std::basic_istream<CharT,Traits>) [edit]
extrahiert Zeichen, bis das gegebene Zeichen gefunden wird
(public member function of std::basic_istream<CharT,Traits>) [edit]
extrahiert und verwirft Zeichen, bis das gegebene Zeichen gefunden wird
(public member function of std::basic_istream<CharT,Traits>) [edit]
extrahiert Zeichenblöcke
(public member function of std::basic_istream<CharT,Traits>) [edit]
extrahiert bereits verfügbare Zeichenblöcke
(public member function of std::basic_istream<CharT,Traits>) [edit]
gibt die Anzahl der Zeichen zurück, die von der letzten unformatierten Eingabeoperation extrahiert wurden
(public member function of std::basic_istream<CharT,Traits>) [edit]
Positionierung
gibt den Eingabepositionsindikator zurück
(public member function of std::basic_istream<CharT,Traits>) [edit]
setzt den Eingabepositionsindikator
(public member function of std::basic_istream<CharT,Traits>) [edit]
Sonstiges
synchronisiert mit dem zugrunde liegenden Speichermedium
(public member function of std::basic_istream<CharT,Traits>) [edit]

Member-Klassen

implementiert grundlegende Logik für die Vorbereitung des Streams für Eingabeoperationen
(public member class of std::basic_istream<CharT,Traits>) [edit]

Geerbt von std::basic_ios

Membertypen

Mitgliedertyp Definition
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Memberfunktionen

Zustandsfunktionen
prüft, ob kein Fehler aufgetreten ist, d.h. I/O-Operationen verfügbar sind
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
prüft, ob das Dateiende erreicht wurde
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
prüft, ob ein Fehler aufgetreten ist
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
prüft, ob ein nicht behebbbarer Fehler aufgetreten ist
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
prüft, ob ein Fehler aufgetreten ist (Synonym für fail())
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
prüft, ob kein Fehler aufgetreten ist (Synonym für !fail())
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
gibt Zustandsflags zurück
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
setzt Zustandsflags
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
modifiziert Zustandsflags
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
Formatierung
kopiert Formatierungsinformationen
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
verwaltet das Füllzeichen
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
Sonstiges
verwaltet die Exception-Maske
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
setzt die Locale
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
verwaltet den zugehörigen Stream-Puffer
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
verwaltet den gebundenen Stream
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
verengt Zeichen
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]
erweitert Zeichen
(public member function of std::basic_ios<CharT,Traits>) [bearbeiten]

Geerbt von std::ios_base

Memberfunktionen

Formatierung
verwaltet Formatierungsflags
(public member function of std::ios_base) [bearbeiten]
setzt spezifische Formatierungsflags
(public member function of std::ios_base) [bearbeiten]
löscht spezifische Formatierungsflags
(public member function of std::ios_base) [bearbeiten]
verwaltet die Dezimalgenauigkeit von Fließkommaoperationen
(public member function of std::ios_base) [bearbeiten]
verwaltet die Feldbreite
(public member function of std::ios_base) [bearbeiten]
Lokale
setzt Locale
(public member function of std::ios_base) [bearbeiten]
gibt die aktuelle Locale zurück
(public member function of std::ios_base) [bearbeiten]
Internes erweiterbares Array
[static]
gibt eine programmweite eindeutige Ganzzahl zurück, die sicher als Index für pword() und iword() verwendet werden kann
(public static member function of std::ios_base) [bearbeiten]
vergrößert den privaten Speicher bei Bedarf und greift auf das long-Element am gegebenen Index zu
(public member function of std::ios_base) [bearbeiten]
vergrößert den privaten Speicher bei Bedarf und greift auf das void*-Element am gegebenen Index zu
(public member function of std::ios_base) [bearbeiten]
Sonstiges
registriert eine Callback-Funktion für Ereignisse
(public member function of std::ios_base) [bearbeiten]
legt fest, ob C++ und C E/A-Bibliotheken interoperabel sind
(public static member function of std::ios_base) [bearbeiten]
Member-Klassen
Stream-Exception
(public member class of std::ios_base) [bearbeiten]
initialisiert Standard-Stream-Objekte
(public member class of std::ios_base) [bearbeiten]

Member-Typen und Konstanten

Typ Erklärung
Stream-Öffnungsmodus-Typ

Folgende Konstanten sind ebenfalls definiert

Konstante Erklärung[bearbeiten]
app an das Ende des Streams gehen vor jedem Schreibvorgang[bearbeiten]
binary im Binärmodus öffnen[bearbeiten]
in zum Lesen öffnen[bearbeiten]
out zum Schreiben öffnen[bearbeiten]
trunc den Inhalt des Streams beim Öffnen verwerfen[bearbeiten]
ate sofort nach dem Öffnen zum Ende des Streams gehen[bearbeiten]
noreplace (C++23) im exklusiven Modus öffnen[bearbeiten]

(typedef) [bearbeiten]
Typ der Formatierungsflags

Folgende Konstanten sind ebenfalls definiert

Konstante Erklärung[bearbeiten]
dez dezimales Basis für Ganzzahl-E/A verwenden: siehe std::dec[bearbeiten]
okt oktal-Basis für Ganzzahl-E/A verwenden: siehe std::oct[bearbeiten]
hex hexadezimal-Basis für Ganzzahl-E/A verwenden: siehe std::hex[bearbeiten]
basefield dec | oct | hex. Nützlich für Maskierungsoperationen[bearbeiten]
left linksbündige Ausrichtung (fügt Füllzeichen rechts hinzu): siehe std::left[bearbeiten]
right rechtsbündige Ausrichtung (fügt Füllzeichen links hinzu): siehe std::right[bearbeiten]
internal interne Ausrichtung (fügt Füllzeichen an der intern definierten Stelle ein): siehe std::internal[bearbeiten]
adjustfield left | right | internal. Nützlich für Maskierungsoperationen[bearbeiten]
scientific erzeugt Fließkommatypen in wissenschaftlicher Notation oder in Hex-Notation, wenn mit fixed kombiniert: siehe std::scientific[bearbeiten]
fixed erzeugt Fließkommatypen in fester Notation oder in Hex-Notation, wenn mit scientific kombiniert: siehe std::fixed[bearbeiten]
floatfield scientific | fixed. Nützlich für Maskierungsoperationen[bearbeiten]
boolalpha fügt bool-Typen im alphanumerischen Format ein und extrahiert sie: siehe std::boolalpha[bearbeiten]
showbase erzeugt ein Präfix, das die numerische Basis für die Ganzzahl-Ausgabe angibt, erfordert den Währungsindikator bei monetären E/A: siehe std::showbase[bearbeiten]
showpoint erzeugt bedingungslos ein Dezimaltrennzeichen für die Ausgabe von Fließkommazahlen: siehe std::showpoint[bearbeiten]
showpos erzeugt ein + Zeichen für nicht-negative numerische Ausgaben: siehe std::showpos[bearbeiten]
skipws überspringt führende Leerzeichen vor bestimmten Eingabeoperationen: siehe std::skipws[bearbeiten]
unitbuf leert den Ausgabepuffer nach jeder Ausgabeoperation: siehe std::unitbuf[bearbeiten]
uppercase ersetzt bestimmte Kleinbuchstaben durch ihre Großbuchstaben-Äquivalente bei bestimmten Ausgabeoperationen: siehe std::uppercase[bearbeiten]

(typedef) [bearbeiten]
Zustand des Stream-Typs

Folgende Konstanten sind ebenfalls definiert

Konstante Erklärung[bearbeiten]
goodbit kein Fehler[bearbeiten]
badbit irreparabler Stream-Fehler[bearbeiten]
failbit Eingabe-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)[bearbeiten]
eofbit zugeordnete Eingabesequenz hat das Dateiende erreicht[bearbeiten]

(typedef) [bearbeiten]
Typ der Suchrichtung

Folgende Konstanten sind ebenfalls definiert

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

(typedef) [bearbeiten]
spezifiziert den Ereignistyp
(enum) [bearbeiten]
Callback-Funktionstyp
(typedef) [bearbeiten]

[bearbeiten] Hinweise

Feature-Test-Makro Wert Std Feature
__cpp_lib_fstream_native_handle 202306L (C++26) Unterstützung nativer Handles

[bearbeiten] Beispiel

#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    std::string filename = "Test.b";
 
    // prepare a file to read
    double d = 3.14;
    std::ofstream(filename, std::ios::binary)
        .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc";
 
    // open file for reading
    std::ifstream istrm(filename, std::ios::binary);
    if (!istrm.is_open())
        std::cout << "failed to open " << filename << '\n';
    else
    {
        double d;
        istrm.read(reinterpret_cast<char*>(&d), sizeof d); // binary input
        int n;
        std::string s;
        if (istrm >> n >> s)                               // text input
            std::cout << "read back from file: " << d << ' ' << n << ' ' << s << '\n';
    }
}

Ausgabe

read back from file: 3.14 123 abc