ios_base-Klasse

Die Klasse beschreibt die Speicher- und Memberfunktionen, die sowohl für Eingabe- als auch Ausgabedatenströme verwendet werden, 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, aus denen Folgendes besteht:

  • Formatieren von Flags in einem Objekt vom Typ fmtflags.

  • Ein Ausnahmeformat in einem Objekt vom Typ iostate.

  • Eine Feldbreite in einem Objekt vom Typ int.

  • Eine Anzeigegenauigkeit in einem Objekt vom Typ int.

  • Ein locale Objekt in einem Objekt vom Typ locale.

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

Ein Objekt der Klasse ios_base speichert auch Datenstromstatusinformationen in einem Objekt vom Typ 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 Eine Bitmaske, die als internal | | leftright.
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 Eine Bitmaske, die als dec | | hexoct.
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 Eine Bitmaske, die als 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.

Funktionen

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 beim Erstellen die Standardobjekte iostream .
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 iostream und C-Laufzeitbibliotheksvorgänge in der Reihenfolge auftreten, 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};

Hinweise

Der Typ ist ein Aufzählungstyp, der ein Objekt beschreibt, das das Rückrufereignis speichern kann, das als Argument für eine funktion verwendet wird, die bei register_callback. Die unterschiedlichen Ereigniswerte lauten:

  • copyfmt_event, um einen Rückruf zu identifizieren, der am Ende eines Anrufs copyfmtvor dem Kopieren des Ausnahmeformats auftritt.

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

  • imbue_event, um einen Rückruf zu identifizieren, der am Ende eines Aufrufs imbuevor der Rückgabe der Funktion auftritt.

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
Die event.

_Base
Der Stream, in dem das Ereignis aufgerufen wurde.

_I
Eine benutzerdefinierte Nummer.

Hinweise

Der Typ beschreibt einen Zeiger auf eine Funktion, die registriert register_callbackwerden kann. Der Typ der Funktion darf keine Ausnahme auslösen.

Beispiel

Ein Beispiel, das verwendet wird, event_callbackfinden 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);
    };
}

Hinweise

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

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.

Hinweise

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

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;
   // ...
};

Hinweise

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 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.

Hinweise

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 basic_ios::imbue unter.

Init

Erstellt beim Erstellen die Standardobjekte iostream .

class Init { };

Hinweise

Die geschachtelte Klasse beschreibt ein Objekt, dessen Konstruktion sicherstellt, dass die Standardobjekte iostream ordnungsgemäß erstellt werden, auch bevor ein Konstruktor für ein beliebiges statisches Objekt ausgeführt wird.

ios_base

Erstellt ios_base-Objekte.

ios_base();

Hinweise

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;
   // ...
};

Hinweise

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.

Wenn keines der oben genannten Bits festgelegt ist, ist goodbit ein nützlicher Wert (goodbit ist auf jeden Fall 0).

iword

Weist einen als iword zu speichernden Wert zu.

long& iword(int idx);

Parameter

idx
Der Index des als iword zu speichernden Werts.

Hinweise

Die Memberfunktion gibt einen Verweis auf Element-IDX des erweiterbaren Arrays mit Elementen vom Typ 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::copyfmtvon oder nach dem Zerstören des Objekts geändert 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 zum Abrufen eines eindeutigen Indexes für die Verwendung für alle Objekte des Typs ios_baseauf 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;
   // ...
};

Hinweise

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

Dauerhaft Effekt
app Suchen nach dem Ende des Datenstroms vor jedem Schreiben
ate Suchen nach dem Ende des Datenstroms unmittelbar nach dem Öffnen
binary Öffnen im binären Modus. (Eine Beschreibung des Binärmodus finden Sie unter fopen .)
in Zum Lesen öffnen
out Offen zum Schreiben
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 des Typs ios_base.

Rückgabewert

Das Objekt, an das zugewiesen wird.

Hinweise

Der Operator kopiert die gespeicherte Formatinformation und erstellt gleichzeitig eine Kopie von erweiterbaren Arrays. Dann wird *this zurückgegeben. Der Rückrufstapel wird nicht kopiert.

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.

Hinweise

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.

Hinweise

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::copyfmtvon oder nach dem Zerstören des Objekts geändert wurde.

Wenn Index negativ ist oder eindeutiger 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 zum Abrufen eines eindeutigen Indexes für die Verwendung für alle Objekte des Typs ios_baseauf 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.

Hinweise

Die Memberfunktion verschiebt das Paar {pfn, idx} auf den gespeicherten Rückrufstapel-Rückrufstapel. 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;
        // ...
    };
}

Hinweise

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

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

  • 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 zu deaktivierenden Kennzeichnungen.

Rückgabewert

Die vorherigen Formatkennzeichnungen

Hinweise

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 geben 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 sind.stdio

Rückgabewert

Vorherige Einstellung für diese Funktion.

Hinweise

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

unsetf

Deaktiviert die angegebenen Flags.

void unsetf(
   fmtflags _Mask
);

Parameter

_Mask
Die Kennzeichnungen, die Sie deaktivieren möchten.

Hinweise

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

Beispiel

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

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 Einstellung für die Breite.

Hinweise

Die erste Memberfunktion gibt die breite des gespeicherten Felds 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.

Hinweise

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

Siehe auch

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