Namespaces
Variants

std:: ios_base

From cppreference.net
< cpp ‎ | io
Definiert im 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) Statusinformationen: Stream-Statusflags.
2) Steuerinformationen: Flags, die die Formatierung sowohl der Eingabe- als auch der Ausgabesequenzen und die zugeordnete Locale kontrollieren.
3) privater Speicher: indizierte erweiterbare Datenstruktur, die sowohl long als auch void * Elemente erlaubt, die entweder als zwei Arrays beliebiger Länge oder als ein einzelnes Array von Zweielement-Structs oder ein anderer Container implementiert werden kann.
4) Callbacks: beliebige Anzahl benutzerdefinierter Funktionen, die von imbue() , std::basic_ios::copyfmt() und ~ios_base() aufgerufen werden können.

Typische Implementierungen enthalten Member-Konstanten entsprechend aller Werte von fmtflags , iostate , openmode , und seekdir wie unten gezeigt, Member-Variablen zur Verwaltung der aktuellen Präzision, Breite und Formatierungsflags, der Ausnahmemaske, des Pufferfehlerzustands, eines veränderbaren Containers für die Callbacks, des aktuell eingestellten Locale, des privaten Speichers und einer statischen Integer-Variable für xalloc() .

Inhaltsverzeichnis

Memberfunktionen

Konstruiert das Objekt
(geschützte Elementfunktion)
[virtual]
Destruiert das Objekt
(virtuelle öffentliche Elementfunktion)
Weist dem Stream zu
(öffentliche Elementfunktion)
Formatierung
Verwaltet Formatierungsflags
(öffentliche Elementfunktion)
Setzt spezifische Formatierungsflags
(öffentliche Elementfunktion)
Löscht spezifische Formatierungsflags
(öffentliche Elementfunktion)
Verwaltet die Dezimalgenauigkeit von Gleitkommaoperationen
(öffentliche Elementfunktion)
Verwaltet die Feldbreite
(öffentliche Elementfunktion)
Locales
Setzt das Locale
(öffentliche Elementfunktion)
Gibt das aktuelle Locale zurück
(öffentliche Elementfunktion)
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)
Vergrößert den privaten Speicher bei Bedarf und ermöglicht Zugriff auf das long Element am gegebenen Index
(öffentliche Elementfunktion)
Vergrößert den privaten Speicher bei Bedarf und ermöglicht Zugriff auf das void * Element am gegebenen Index
(öffentliche Elementfunktion)
Sonstiges
Registriert eine Ereignisrückruffunktion
(öffentliche Elementfunktion)
Legt fest, ob C++ und C I/O-Bibliotheken interoperabel sind
(öffentliche statische Elementfunktion)

Member-Klassen

Stream-Exception
(öffentliche Member-Klasse)
Initialisiert Standard-Stream-Objekte
(öffentliche Member-Klasse)

Membertypen 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 zum Lesen öffnen
out zum Schreiben öffnen
trunc verwirft den Inhalt des Streams beim Öffnen
ate springt unmittelbar nach dem Öffnen zum Ende des Streams
noreplace (C++23) im exklusiven Modus öffnen

(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 Designpunkt 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 bool -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 + -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

(Typedef)
Zustandstyp des Streams

Folgende Konstanten sind ebenfalls definiert:

Konstante Erklärung
goodbit kein Fehler
badbit nicht behebbarer Stream-Fehler
failbit Ein-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit zugehörige Eingabesequenz hat 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)
spezifiziert den Ereignistyp
(enum)
Callback-Funktionstyp
(typedef)
Veraltete Member-Typen
Typ Erläuterung
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)

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

Siehe auch

verwaltet einen beliebigen Streampuffer
(Klassentemplate)