Namensräume
Varianten
Aktionen

std::ios_base

Von cppreference.com
< cpp‎ | io
 
 
 
 
Definiert in Header <ios>
class ios_base;

Die Klasse ios_base ist eine vielseitige Klasse, die als Basisklasse für alle I/O-Stream-Klassen dient. Sie verwaltet verschiedene Arten von Daten

1) Zustandsinformationen: Stream-Status-Flags.
2) Steuerinformationen: Flags, die die Formatierung von Eingabe- und Ausgabesequenzen sowie die eingebundene Locale steuern.
3) privater Speicher: indizierte erweiterbare Datenstruktur, die sowohl long als auch void* Elemente zulässt, welche als zwei Arrays beliebiger Länge oder ein einzelnes Array von Zweielement-Strukturen oder einem anderen Container implementiert werden können.
4) Rückruffunktionen: eine beliebige Anzahl von benutzerdefinierten Funktionen, die von imbue(), std::basic_ios::copyfmt() und ~ios_base() aufgerufen werden.

Eine typische Implementierung enthält Konstanten für alle Werte von fmtflags, iostate, openmode und seekdir, die im Folgenden aufgeführt sind, Membervariablen zur Verwaltung der aktuellen Genauigkeit, Breite und Formatierungsflags, die Ausnahme-Maske, den Pufferfehlerstatus, einen skalierbaren Container für die Rückruffunktionen, die aktuell eingebundene Locale, den privaten Speicher und eine statische Ganzzahlvariable für xalloc().

Inhalt

[edit] Memberfunktionen

konstruiert das Objekt
(geschützte Memberfunktion) [edit]
[virtuell]
destruiert das Objekt
(virtuelle öffentliche Memberfunktion) [edit]
weist dem Stream zu
(öffentliche Memberfunktion) [edit]
Formatierung
verwaltet Formatierungsflags
(öffentliche Memberfunktion) [edit]
setzt spezifische Formatierungsflags
(öffentliche Memberfunktion) [edit]
löscht spezifische Formatierungsflags
(öffentliche Memberfunktion) [edit]
verwaltet die Dezimalgenauigkeit von Fließkommaoperationen
(öffentliche Memberfunktion) [edit]
verwaltet die Feldbreite
(öffentliche Memberfunktion) [edit]
Lokale
setzt Locale
(öffentliche Memberfunktion) [edit]
gibt die aktuelle Locale zurück
(öffentliche Memberfunktion) [edit]
Internes erweiterbares Array
[static]
gibt eine programmweite eindeutige Ganzzahl zurück, die sicher als Index für pword() und iword() verwendet werden kann
(öffentliche statische Memberfunktion) [edit]
vergrößert den privaten Speicher bei Bedarf und greift auf das long-Element am gegebenen Index zu
(öffentliche Memberfunktion) [edit]
vergrößert den privaten Speicher bei Bedarf und greift auf das void*-Element am gegebenen Index zu
(öffentliche Memberfunktion) [edit]
Sonstiges
registriert eine Callback-Funktion für Ereignisse
(öffentliche Memberfunktion) [edit]
legt fest, ob C++ und C E/A-Bibliotheken interoperabel sind
(öffentliche statische Memberfunktion) [edit]

Member-Klassen

Stream-Exception
(öffentliche Memberklasse) [edit]
initialisiert Standard-Stream-Objekte
(öffentliche Memberklasse) [edit]

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]
Veraltete Mitgliedstypen
Typ Erklärung
io_state (veraltet) Ganzzahltyp, der wie iostate verwendet werden kann
open_mode (veraltet) Ganzzahltyp, der wie openmode verwendet werden kann
seek_dir (veraltet) Ganzzahltyp, der wie seekdir verwendet werden kann
streamoff (veraltet) nicht spezifizierter Typ, der wie off_type verwendet werden kann, nicht notwendigerweise std::streamoff
streampos (veraltet) nicht spezifizierter Typ, der wie pos_type verwendet werden kann, nicht notwendigerweise std::streampos
(bis C++17)

[edit] 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 1357
(N3110)
C++98 std::ios_base definierte operator~, operator&
und operator| für die Typen openmode, fmtflags und
iostate, was gegen die Anforderungen von BitmaskType[1] verstößt
entfernte diese Definitionen
  1. Ein BitmaskType muss bitweise Operationen auf seinen eigenen Elementen unterstützen. Die Unterstützung für bitweise Operationen sollte nicht extern bereitgestellt werden.

[edit] Siehe auch

verwaltet einen beliebigen Stream-Puffer
(Klassen-Template) [bearbeiten]