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 Typlocale
.Zwei erweiterbare Arrays mit Elementen vom Typ
long
undvoid
Zeiger.
Ein Objekt der Klasse ios_base
speichert auch Datenstromstatusinformationen in einem Objekt vom Typ iostate
und 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 | | left right . |
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 | | hex oct . |
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. |
Functions
Name | Beschreibung |
---|---|
failure |
Die Memberklasse dient als Basisklasse für alle Ausnahmen, die von der Memberfunktion in der Klassenvorlage basic_ios gelö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 Anrufscopyfmt
vor dem Kopieren des Ausnahmeformats auftritt.erase_event
, um einen Rückruf zu identifizieren, der am Anfang eines Anrufscopyfmt
oder am Anfang eines Aufrufs an den Destruktor für*this
.imbue_event
, um einen Rückruf zu identifizieren, der am Ende eines Aufrufsimbue
vor 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_callback
werden kann. Der Typ der Funktion darf keine Ausnahme auslösen.
Beispiel
Ein Beispiel, das verwendet wird, event_callback
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);
};
}
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 ist, wird 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
.
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 untersetw
).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 Typsbool
nicht als numerische Werte, sondern als Namen (z. B.true
undfalse
) 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 alsinternal
|left
|right
basefield
, definiert alsdec
|hex
|oct
floatfield
, definiert alsfixed
|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 long
zurü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::
copyfmt
von 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_base
auf xalloc
.
Beispiel
Ein Beispiel für die Verwendung von iword
finden Sie unter xalloc
.
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::
copyfmt
von 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_base
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.
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 unsetf
finden 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