ios_base-Klasse

Die Klasse beschreibt die Speicher- und Memberfunktionen, die Eingabe- und Ausgabestreams gemeinsam sind, die nicht von den Vorlagenparametern abhängen. (Die Klassenvorlage basic_ios beschreibt, was häufig ist und von Vorlagenparametern abhängig ist.)

Ein Objekt der Klasse ios_base speichert Formatierungsinformationen, die aus:

  • Formatieren von Flags in einem Objekt des Typs fmtflags.

  • Eine Ausnahmemaske in einem Objekt des Typs iostate.

  • Eine Feldbreite in einem Objekt vom Typ int.

  • Eine Anzeigegenauigkeit in einem Objekt vom Typ int.

  • Ein locale Objekt in einem Objekt des Typs locale.

  • Zwei erweiterbare Arrays mit Elementen vom Typ long und void Zeiger.

Ein Objekt der Klasse ios_base speichert auch Datenstromstatusinformationen in einem Objekt des Typs iostateund einen Rückrufstapel.

Member

Konstruktoren

Name Beschreibung
ios_base Erstellt ios_base-Objekte.

TypeDefs

Name Beschreibung
event_callback Beschreibt eine Funktion, die an register_call.
fmtflags Konstanten, mit denen das Aussehen der Ausgabe angegeben wird.
iostate Definiert Konstanten, die den Zustand eines Streams beschreiben.
openmode Beschreibt, wie mit einem Stream interagiert wird.
seekdir Gibt den Startpunkt für Offsetvorgänge an.

Enumerationen

Name Beschreibung
event Gibt Ereignistypen an.

Konstanten

Name Beschreibung
adjustfield Ein Bitmask, das als internal | | leftrightdefiniert ist.
app Gibt an, dass vor jedem Einfügevorgang bis zum Ende eines Streams gesucht werden soll.
ate Gibt an, dass bis zum Ende eines Streams gesucht werden soll, wenn dessen steuerndes Objekt erstmalig erstellt wird.
badbit Protokolliert einen Verlust der Integrität des Streampuffers.
basefield Ein Bitmask, das als dec | | hexoctdefiniert ist.
beg Gibt an, dass relativ zum Anfang einer Sequenz gesucht werden soll.
binary Gibt an, dass eine Datei als binärer Stream und nicht als Textstream gelesen werden soll.
boolalpha Gibt an, dass Objekte vom Typ bool als Namen (wie true und false) statt als numerische Werte eingefügt oder extrahiert werden sollen.
cur Gibt an, dass in einer Sequenz relativ zur aktuellen Position gesucht werden soll.
dec Gibt an, dass ganzzahlige Werte im Dezimalformat eingefügt oder extrahiert werden sollen.
end Gibt an, dass relativ zum Ende einer Sequenz gesucht werden soll.
eofbit Protokolliert beim Extrahieren aus einem Stream das Dateiende.
failbit Protokolliert einen Fehler beim Extrahieren eines gültigen Felds aus einem Stream.
fixed Gibt an, dass Gleitkommawerte im Festkommaformat (ohne Exponentenfeld) eingefügt werden sollen.
floatfield Ein Bitmask, das als "Bitmask" definiert ist fixed | scientific
goodbit Kein Zustandsbit ist gesetzt.
hex Gibt an, dass ganzzahlige Werte im Hexadezimalformat eingefügt oder extrahiert werden sollen.
in Gibt die Extraktion aus einem Stream an.
internal Füllt bis zu einer Feldbreite auf, indem Füllzeichen an einem Punkt eingefügt werden, der sich intern in einem generierten numerischen Feld befindet.
left Gibt linksbündige Ausrichtung an.
oct Gibt an, dass ganzzahlige Werte im Oktalformat eingefügt oder extrahiert werden sollen.
out Gibt die Einfügung in einen Stream an.
right Gibt rechtsbündige Ausrichtung an.
scientific Gibt an, dass Gleitkommawerte im wissenschaftlichen Format (mit Exponentenfeld) eingefügt werden sollen.
showbase Gibt die Einfügung eines Präfixes an, das die Basis eines generierten ganzzahigen Felds angibt.
showpoint Gibt die unbedingte Einfügung eines Dezimaltrennzeichens in einem generierten Gleitkommafeld an.
showpos Gibt die Einfügung eines Pluszeichens (+) in einem nicht negativen generierten numerischen Feld an.
skipws Gibt an, dass führende Leerzeichen vor bestimmten Extraktionen übersprungen werden sollen.
trunc Gibt an, dass der Inhalt einer vorhandenen Datei gelöscht werden soll, wenn deren steuerndes Objekt erstellt wird.
unitbuf Bewirkt, dass die Ausgabe nach jeder Einfügung geleert wird.
uppercase Gibt an, dass bei bestimmten Einfügevorgängen die Großbuchstaben eingefügt werden, die den Kleinbuchstaben entsprechen.

Functions

Name Beschreibung
failure Die Memberklasse dient als Basisklasse für alle Ausnahmen, die von der Memberfunktion in der Klassenvorlage basic_iosgelöscht werden.
flags Legt die aktuellen Flageinstellungen fest oder gibt sie zurück.
getloc Gibt das gespeicherte locale Objekt zurück.
imbue Ändert das Gebietsschema.
Init Erstellt die Standardobjekte iostream beim Erstellen.
iword Weist einen als iword zu speichernden Wert zu.
precision Gibt die Anzahl der anzuzeigenden Ziffern in einer Gleitkommazahl an.
pword Weist einen als pword zu speichernden Wert zu.
register_callback Gibt eine Rückruffunktion an.
setf Legt die angegebenen Flags fest.
sync_with_stdio Stellt sicher, dass und C-Laufzeitbibliotheksvorgänge in der Reihenfolge auftreten, iostream in der sie im Quellcode angezeigt werden.
unsetf Bewirkt, dass die angegebenen Flags deaktiviert werden.
width Legt die Länge des Ausgabestreams fest.
xalloc Gibt an, dass eine Variable Teil des Streams sein soll.

Operatoren

Name Beschreibung
operator= Der Zuweisungsoperator für ios_base-Objekte.

Anforderungen

Header:<ios>

Namespace:std

event

Gibt Ereignistypen an.

enum event {
    erase_event,
    imbue_event,
    copyfmt_event};

Bemerkungen

Der Typ ist ein aufgezählter Typ, der ein Objekt beschreibt, das das Rückrufereignis speichern kann, das als Argument für eine Funktion verwendet wird, die mit register_callbackregistriert ist. Die unterschiedlichen Ereigniswerte lauten:

  • copyfmt_event, um einen Rückruf zu identifizieren, der am Ende eines Aufrufs copyfmtauftritt, direkt vor dem Kopieren der Ausnahmemaske .

  • erase_event, um einen Rückruf zu identifizieren, der am Anfang eines copyfmtAufrufs auftritt, oder am Anfang eines Aufrufs an den Destruktor für *this.

  • imbue_event, um einen Rückruf zu identifizieren, der am Ende eines Aufrufs imbueauftritt, direkt bevor die Funktion zurückgegeben wird.

Beispiel

Ein Beispiel finden Sie unter register_callback.

event_callback

Beschreibt eine Funktion, die an register_call.

typedef void (__cdecl *event_callback)(
    event _E,
    ios_base& _Base,
    int _I);

Parameter

_E
Das event.

_Base
Der Stream, in dem das Ereignis aufgerufen wurde.

_I
Eine benutzerdefinierte Nummer.

Bemerkungen

Der Typ beschreibt einen Zeiger auf eine Funktion, die mit register_callback. Der Typ der Funktion darf keine Ausnahme auslösen.

Beispiel

Ein Beispiel, das verwendet event_callbackwird, finden Sie unter register_call .

failure

Die Klasse failure definiert die Basisklasse für alle Typen von Objekten, die von Funktionen in der iostreams-Bibliothek als Ausnahmen ausgelöst wurden, um Fehler zu melden, die während der Streampuffervorgänge erkannt wurden.

namespace std {
    class failure : public system_error {
    public:
        explicit failure(
            const string& _Message,
            const error_code& _Code = io_errc::stream);

        explicit failure(
            const char* str,
            const error_code& _Code = io_errc::stream);
    };
}

Bemerkungen

Der von what() zurückgegebene Wer ist eine Kopie von _Message, die möglicherweise mit einem auf _Code basierten Test erweitert wurde. Wenn kein _Code angegeben wird, lautet der Standardwert make_error_code(io_errc::stream).

Beispiel

// ios_base_failure.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>

int main ( )
{
    using namespace std;
    fstream file;
    file.exceptions(ios::failbit);
    try
    {
        file.open( "rm.txt", ios_base::in );
        // Opens nonexistent file for reading
    }
    catch( ios_base::failure f )
    {
        cout << "Caught an exception: " << f.what() << endl;
    }
}
Caught an exception: ios_base::failbit set

flags

Legt die aktuellen Flageinstellungen fest oder gibt sie zurück.

fmtflags flags() const;
fmtflags flags(fmtflags fmtfl);

Parameter

fmtfl
Die neue Einstellung fmtflags.

Rückgabewert

Die vorherige oder aktuelle Einstellung fmtflags.

Bemerkungen

Eine Liste der Flags finden Sie in ios_base::fmtflags der Liste.

Die erste Memberfunktion gibt die gespeicherten Formatflags zurück. Die zweite Memberfunktion speichert fmtfl in den Formatflags und gibt den zuletzt gespeicherten Wert zurück.

Beispiel

// ios_base_flags.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>

int main ( )
{
    using namespace std;
    cout << cout.flags( ) << endl;
    cout.flags( ios::dec | ios::boolalpha );
    cout << cout.flags( );
}
513
16896

fmtflags

Konstanten, mit denen das Aussehen der Ausgabe angegeben wird.

class ios_base {
public:
   typedef implementation-defined-bitmask-type fmtflags;
   static const fmtflags boolalpha;
   static const fmtflags dec;
   static const fmtflags fixed;
   static const fmtflags hex;
   static const fmtflags internal;
   static const fmtflags left;
   static const fmtflags oct;
   static const fmtflags right;
   static const fmtflags scientific;
   static const fmtflags showbase;
   static const fmtflags showpoint;
   static const fmtflags showpos;
   static const fmtflags skipws;
   static const fmtflags unitbuf;
   static const fmtflags uppercase;
   static const fmtflags adjustfield;
   static const fmtflags basefield;
   static const fmtflags floatfield;
   // ...
};

Bemerkungen

Unterstützt die Manipulatoren in ios.

Der Typ ist ein Bitmaskentyp, der ein Objekt beschreibt, das Formatflags speichern kann. Die unterschiedlichen Flagwerte (Elemente) sind:

  • dec, um ganzzahlige Werte im Dezimalformat einzufügen oder zu extrahieren.

  • hex, um ganzzahlige Werte im Hexadezimalformat einzufügen oder zu extrahieren.

  • oct, um ganzzahlige Werte im Oktalformat einzufügen oder zu extrahieren.

  • showbase, um ein Präfix einzufügen, das die Basis eines generierten ganzzahligen Felds angibt.

  • internal, um nach Bedarf bis zu einer Feldbreite aufzufüllen, indem Füllzeichen an einem Punkt eingefügt werden, der sich intern in einem generierten numerischen Feld befindet. (Informationen zum Festlegen der Feldbreite finden Sie unter setw).

  • left, um nach Bedarf bis zu einer Feldbreite aufzufüllen, indem Füllzeichen am Ende eines generierten Feld angefügt werden (linksbündig ausrichten).

  • right, um nach Bedarf bis zu einer Feldbreite aufzufüllen, indem Füllzeichen am Anfang eines generierten Feld eingefügt werden (rechtsbündig ausrichten).

  • boolalpha, um Objekte des Typs bool nicht als numerische Werte, sondern als Namen (z. B. true und false) einzufügen oder zu extrahieren.

  • fixed, um Gleitkommawerte im Festkommaformat (ohne Exponentenfeld) einzufügen.

  • scientific, um Gleitkommawerte im wissenschaftlichen Format (mit Exponentenfeld) einzufügen.

  • showpoint, um ein Dezimaltrennzeichen unbedingt in ein generiertes Gleitkommafeld einzufügen.

  • showpos, um ein Pluszeichens in ein generiertes nicht negatives numerisches Feld einzufügen.

  • skipws, um führende Leerzeichen vor bestimmten Extraktionen zu überspringen.

  • unitbuf, um die Ausgabe nach jedem Einfügevorgang zu leeren.

  • uppercase, um bei bestimmten Einfügevorgängen die Großbuchstaben einzufügen, die den Kleinbuchstaben entsprechen.

Zusätzlich gibt es weitere nützliche Werte:

  • adjustfield, eine Bitmaske, die als "Bitmaske" definiert ist internal | left | right

  • basefield, definiert als dec | hex | oct

  • floatfield, definiert als fixed | scientific

Beispiele für Funktionen, die diese Formatkennzeichnungen ändern, finden Sie unter <iomanip>.

getloc

Gibt das gespeicherte locale Objekt zurück.

locale getloc() const;

Rückgabewert

Das gespeicherte locale Objekt.

Beispiel

// ios_base_getlock.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    cout << cout.getloc( ).name( ).c_str( ) << endl;
}
C

imbue

Ändert das Gebietsschema.

locale imbue(const locale& _Loc);

Parameter

_Loc
Die neue Benutzergebietsschema-Einstellung.

Rückgabewert

Das vorherige Gebietsschema.

Bemerkungen

Die Memberfunktion speichert _Loc im locale Objekt und meldet dann das Rückrufereignis und imbue_event. Es gibt den zuletzt gespeicherten Wert zurück.

Beispiel

Ein Beispiel finden Sie unter basic_ios::imbue ..

Init

Erstellt die Standardobjekte iostream , wenn sie erstellt werden.

class Init { };

Bemerkungen

Die geschachtelte Klasse beschreibt ein Objekt, dessen Konstruktion sicherstellt, dass die Standardobjekte iostream ordnungsgemäß erstellt werden, auch vor der Ausführung eines Konstruktors für ein beliebiges statisches Objekt.

ios_base

Erstellt ios_base-Objekte.

ios_base();

Bemerkungen

Der (geschützte) Konstruktor führt keine Aktion aus. Ein späterer Aufruf von basic_ios::Init muss das Objekt initialisieren, bevor es sicher zerstört werden kann. Daher ist die einzige sichere Verwendung für die Klasse ios_base als Basisklasse für die Klassenvorlage basic_ios.

iostate

Der Typ der Konstanten, die den Zustand eines Streams beschreiben.

class ios_base {
public:
   typedef implementation-defined-bitmask-type iostate;
   static const iostate badbit;
   static const iostate eofbit;
   static const iostate failbit;
   static const iostate goodbit;
   // ...
};

Bemerkungen

Der Typ ist ein Bitmaskentyp, der ein Objekt beschreibt, das Informationen zum Streamzustand speichern kann. Die unterschiedlichen Flagwerte (Elemente) sind:

  • badbit zur Protokollierung eines Verlusts der Integrität des Streampuffers.
  • eofbit zur Protokollierung des Dateiendes beim Extrahieren aus einem Stream.
  • failbit zur Protokollierung eines Fehlers beim Extrahieren eines gültigen Felds aus einem Stream.

Darüber hinaus ist goodbitein nützlicher Wert , wobei keine der zuvor erwähnten Bits festgelegt ist (goodbit ist garantiert null).

iword

Weist einen als iword zu speichernden Wert zu.

long& iword(int idx);

Parameter

idx
Der Index des als iword zu speichernden Werts.

Bemerkungen

Die Memberfunktion gibt einen Verweis auf Element-IDX des erweiterbaren Arrays mit Elementen des Typs longzurück. Alle Elemente sind tatsächlich vorhanden und speichern zunächst den Wert 0. Der zurückgegebene Verweis ist nach dem nächsten Aufruf iword für das Objekt ungültig, nachdem das Objekt durch einen Aufruf basic_ios::copyfmtgeändert wurde oder nachdem das Objekt zerstört wurde.

Wenn idx der eindeutige Speicher für das Element nicht verfügbar ist, ruft die Funktion auf setstate(badbit) und gibt einen Verweis zurück, der möglicherweise nicht eindeutig ist.

Rufen Sie auf, um einen eindeutigen Index zu erhalten, um einen eindeutigen Index für alle Objekte des Typs ios_basezu verwenden, rufen Sie auf xalloc.

Beispiel

Ein Beispiel für die Verwendung iwordfinden Sie xalloc unter .

openmode

Beschreibt, wie mit einem Stream interagiert wird.

class ios_base {
public:
   typedef implementation-defined-bitmask-type openmode;
   static const openmode  in;
   static const openmode  out;
   static const openmode  ate;
   static const openmode  app;
   static const openmode  trunc;
   static const openmode  binary;
   // ...
};

Bemerkungen

Der Öffnungsmodus für mehrere iostream Objekte. Die Flagwerte sind:

Konstant Wirkung
app Suchen Nach dem Ende des Datenstroms vor jedem Schreibvorgang
ate Suchen Sie das Ende des Datenstroms unmittelbar nach dem Öffnen
binary Öffnen im binären Modus. (Siehe fopen eine Beschreibung des Binärmodus.)
in Öffnen zum Lesen
out Zum Schreiben geöffnet
trunc Löschen des Inhalts der Datei nach dem Öffnen

Beispiel

// ios_base_openmode.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>

int main ( )
{
    using namespace std;
    fstream file;
    file.open( "rm.txt", ios_base::out | ios_base::trunc );

    file << "testing";
}

operator=

Der Zuweisungsoperator für ios_base-Objekte.

ios_base& operator=(const ios_base& right);

Parameter

right
Ein Objekt vom Typ ios_base.

Rückgabewert

Das Objekt, an das zugewiesen wird.

Bemerkungen

Der Operator kopiert die gespeicherte Formatinformation und erstellt gleichzeitig eine Kopie von erweiterbaren Arrays. Dann wird *this zurückgegeben. Bitte beachten Sie, dass die Aufrufliste nicht kopiert wird.

Dieser Operator wird nur von ios_base abgeleiteten Klassen verwendet.

precision

Gibt die Anzahl der anzuzeigenden Ziffern in einer Gleitkommazahl an.

streamsize precision() const;
streamsize precision(streamsize _Prec);

Parameter

_Prec
Die Anzahl der anzuzeigenden signifikanten Stellen, oder die Anzahl der Stellen nach dem Komma bei fester Schreibweise.

Rückgabewert

Die erste Memberfunktion gibt die gespeicherte Anzeigegenauigkeit zurück. Die zweite Memberfunktion speichert _Prec in der Anzeigegenauigkeit und gibt den zuletzt gespeicherten Wert zurück.

Bemerkungen

Gleitkommazahlen werden in fester Schreibweise mit fixed.

Beispiel

// ios_base_precision.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    float i = 31.31234F;

    cout.precision( 3 );
    cout << i << endl;          // display three significant digits
    cout << fixed << i << endl; // display three digits after decimal
                                // point
}
31.3
31.312

pword

Weist einen als pword zu speichernden Wert zu.

void *& pword(int index);

Parameter

index
Der Index des als pword zu speichernden Werts.

Bemerkungen

Die Memberfunktion gibt einen Verweis auf den Elementindex des erweiterbaren Arrays mit Elementen des Typzeigers void zurück. Alle Elemente sind tatsächlich vorhanden und speichern zunächst den NULL-Zeiger. Der zurückgegebene Verweis ist nach dem nächsten Aufruf pword für das Objekt ungültig, nachdem das Objekt durch einen Aufruf basic_ios::copyfmtgeändert wurde oder nachdem das Objekt zerstört wurde.

Wenn index negativ ist oder der eindeutige Speicher für das Element nicht verfügbar ist, ruft die Funktion auf setstate(badbit) und gibt einen Verweis zurück, der möglicherweise nicht eindeutig ist.

Rufen Sie auf, um einen eindeutigen Index zu erhalten, um einen eindeutigen Index für alle Objekte des Typs ios_basezu verwenden, rufen Sie auf xalloc.

Beispiel

Unter xalloc finden Sie ein Beispiel für die Verwendung von pword.

register_callback

Gibt eine Rückruffunktion an.

void register_callback(
    event_callback pfn, int idx);

Parameter

pfn
Ein Zeiger auf die Rückruffunktion.

idx
Eine benutzerdefinierte Nummer.

Bemerkungen

Die Memberfunktion verschiebt das Paar {pfn, idx} auf den gespeicherten Rückrufstapelstapel. Wenn ein Rückrufereignis ev gemeldet wird, werden die Funktionen durch den Ausdruck (*pfn)(ev, *this, idx)in umgekehrter Reihenfolge der Registrierung aufgerufen.

Beispiel

// ios_base_register_callback.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>

using namespace std;

void callback1( ios_base::event e, ios_base& stream, int arg )
{
    cout << "in callback1" << endl;
    switch ( e )
    {
    case ios_base::erase_event:
        cout << "an erase event" << endl;
        break;
    case ios_base::imbue_event:
        cout << "an imbue event" << endl;
        break;
    case ios_base::copyfmt_event:
        cout << "an copyfmt event" << endl;
        break;
    };
}

void callback2( ios_base::event e, ios_base& stream, int arg )
{
    cout << "in callback2" << endl;
    switch ( e )
    {
    case ios_base::erase_event:
        cout << "an erase event" << endl;
        break;
    case ios_base::imbue_event:
        cout << "an imbue event" << endl;
        break;
    case ios_base::copyfmt_event:
        cout << "an copyfmt event" << endl;
        break;
    };
}

int main( )
{
    // Make sure the imbue will not throw an exception
    // assert( setlocale( LC_ALL, "german" )!=NULL );

    cout.register_callback( callback1, 0 );
    cin.register_callback( callback2, 0 );

    try
    {
        // If no exception because the locale's not found,
        // generate an imbue_event on callback1
        cout.imbue(locale("german"));
    }
    catch(...)
    {
        cout << "exception" << endl;
    }

    // This will
    // (1) erase_event on callback1
    // (2) copyfmt_event on callback2
    cout.copyfmt(cin);

    // We get two erase events from callback2 at the end because
    // both cin and cout have callback2 registered when cin and cout
    // are destroyed at the end of program.
}
in callback1
an imbue event
in callback1
an erase event
in callback2
an copyfmt event
in callback2
an erase event
in callback2
an erase event

seekdir

Gibt den Startpunkt für Offsetvorgänge an.

namespace std {
    class ios_base {
    public:
        typedef implementation-defined-enumerated-type seekdir;
        static const seekdir beg;
        static const seekdir cur;
        static const seekdir end;
        // ...
    };
}

Bemerkungen

Der Typ ist ein aufgezählter Typ, der ein Objekt beschreibt, das den Suchmodus speichern kann, der als Argument für die Memberfunktionen mehrerer iostream Klassen verwendet werden kann. Die unterschiedlichen Flagwerte sind:

  • beg, um zu suchen (ändern Sie die aktuelle Lese- oder Schreibposition) relativ zum Anfang einer Sequenz (Array, Stream oder Datei).

  • cur, um relativ zur aktuellen Position innerhalb einer Sequenz zu suchen.

  • end, um relativ zum Ende einer Sequenz zu suchen.

Beispiel

// ios_base_seekdir.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>

int main ( )
{
    using namespace std;
    fstream file;
    file.open( "rm.txt", ios_base::out | ios_base::trunc );

    file << "testing";
    file.seekp( 0, ios_base::beg );
    file << "a";
    file.seekp( 0, ios_base::end );
    file << "a";
}

setf

Legt die angegebenen Flags fest.

fmtflags setf(
    fmtflags _Mask
);
fmtflags setf(
    fmtflags _Mask,
    fmtflags _Unset
);

Parameter

_Mask
Die Flags, die eingeschaltet werden sollen.

_Unset
Die kennzeichnungen, die deaktiviert werden sollen.

Rückgabewert

Die vorherigen Formatkennzeichnungen

Bemerkungen

Die erste Memberfunktion ruft effektiv auf flags(_Mask | _Flags) (ausgewählte Bits festlegen) und gibt dann die vorherigen Formatkennzeichnungen zurück. Die zweite Memberfunktion ruft effektiv auf flags(_Mask & fmtfl, flags & ~_Mask) (ersetzen Sie ausgewählte Bits unter einer Maske) und gibt dann die vorherigen Formatkennzeichnungen zurück.

Beispiel

// ios_base_setf.cpp
// compile with: /EHsc
#include <iostream>

int main( )
{
    using namespace std;
    int i = 10;
    cout << i << endl;

    cout.unsetf( ios_base::dec );
    cout.setf( ios_base::hex );
    cout << i << endl;

    cout.setf( ios_base::dec );
    cout << i << endl;
    cout.setf( ios_base::hex, ios_base::dec );
    cout << i << endl;
}

sync_with_stdio

Stellt sicher, dass iostream und C-Laufzeitbibliotheksvorgänge in der Reihenfolge auftreten, in der sie im Quellcode angezeigt werden.

static bool sync_with_stdio(
   bool _Sync = true
);

Parameter

_Sync
Gibt an, ob alle Datenströme synchronisiert stdiosind.

Rückgabewert

Vorherige Einstellung für diese Funktion.

Bemerkungen

Die statische Memberfunktion speichert ein stdio Synchronisierungsflagge, das anfänglich ist true. Wenn true, stellt dieses Flag sicher, dass Vorgänge in derselben Datei ordnungsgemäß zwischen den iostreams Funktionen und den in der C++-Standardbibliothek definierten Funktionen synchronisiert werden. Andernfalls kann die Synchronisierung garantiert sein, aber die Leistung kann verbessert werden. Die Funktion speichert _Sync in der stdio Synchronisierungskennzeichnung und gibt den vorherigen gespeicherten Wert zurück. Sie können sie zuverlässig aufrufen, bevor Sie Vorgänge in den Standarddatenströmen ausführen.

unsetf

Deaktiviert die angegebenen Flags.

void unsetf(
   fmtflags _Mask
);

Parameter

_Mask
Die Kennzeichen, die Sie deaktivieren möchten.

Bemerkungen

Die Memberfunktion ruft effektiv auf flags(~_Mask & flags) (löschen Sie ausgewählte Bits).

Beispiel

Eine Beispiel für die Verwendung unsetffinden Sie unter ios_base::setf .

width

Legt die Länge des Ausgabestreams fest.

streamsize width( ) const;
streamsize width(
   streamsize _Wide
);

Parameter

_Wide
Die gewünschte Größe des Ausgabestreams.

Rückgabewert

Die aktuelle Breiteeinstellung.

Bemerkungen

Die erste Memberfunktion gibt die gespeicherte Feldbreite zurück. Die zweite Memberfunktion speichert _Wide in der Feldbreite und gibt den vorherigen gespeicherten Wert zurück.

Beispiel

// ios_base_width.cpp
// compile with: /EHsc
#include <iostream>

int main( ) {
    using namespace std;

    cout.width( 20 );
    cout << cout.width( ) << endl;
    cout << cout.width( ) << endl;
}
20
0

xalloc

Gibt an, dass eine Variable Teil des Datenstroms ist.

static int xalloc( );

Rückgabewert

Die statische Memberfunktion gibt einen gespeicherten statischen Wert zurück, der für jeden Aufruf erhöht wird.

Bemerkungen

Sie können den Rückgabewert als eindeutiges Indexargument verwenden, wenn Sie die Memberfunktionen iword aufrufen oder pword.

Beispiel

// ios_base_xalloc.cpp
// compile with: /EHsc
// Lets you store user-defined information.
// iword, jword, xalloc
#include <iostream>

int main( )
{
    using namespace std;

    static const int i = ios_base::xalloc();
    static const int j = ios_base::xalloc();
    cout.iword( i ) = 11;
    cin.iword( i ) = 13;
    cin.pword( j ) = "testing";
    cout << cout.iword( i ) << endl;
    cout << cin.iword( i ) << endl;
    cout << ( char * )cin.pword( j ) << endl;
}
11
13
testing

Weitere Informationen

Threadsicherheit in der C++-Standardbibliothek
iostream-Programmierung
iostreams-Konventionen