std:: cout, std:: wcout
|
Definiert im Header
<iostream>
|
||
|
extern
std::
ostream
cout
;
|
(1) | |
|
extern
std::
wostream
wcout
;
|
(2) | |
Die globalen Objekte
std::cout
und
std::wcout
steuern die Ausgabe an einen Streampuffer eines implementierungsdefinierten Typs (abgeleitet von
std::streambuf
), der mit dem standardmäßigen C-Ausgabestream
stdout
assoziiert ist.
Diese Objekte sind garantiert während oder vor dem ersten Mal initialisiert, wenn ein Objekt vom Typ std::ios_base::Init konstruiert wird, und sind in den Konstruktoren und Destruktoren von statischen Objekten mit geordneter Initialisierung verfügbar (sofern <iostream> vor der Definition des Objekts eingebunden wird).
Sofern nicht std :: ios_base :: sync_with_stdio ( false ) aufgerufen wurde, ist es sicher, diese Objekte von mehreren Threads aus gleichzeitig für formatierte und unformatierte Ausgabe zu verwenden.
Gemäß der Spezifikation von
std::cin
gibt
std::
cin
.
tie
(
)
&
std
::
cout
zurück. Dies bedeutet, dass jede Eingabeoperation auf
std::cin
std
::
cout
.
flush
(
)
ausführt (über den Konstruktor von
std::basic_istream::sentry
). Ebenso gibt
std::
wcin
.
tie
(
)
&
std
::
wcout
zurück.
Gemäß der Spezifikation von
std::cerr
gibt
std::
cerr
.
tie
(
)
&
std
::
cout
zurück. Dies bedeutet, dass jede Ausgabeoperation auf
std::cerr
std
::
cout
.
flush
(
)
ausführt (über den Konstruktor von
std::basic_ostream::sentry
). Ebenso gibt
std::
wcerr
.
tie
(
)
&
std
::
wcout
zurück.
(seit C++11)
Hinweise
Das 'c' im Namen steht für "Character" (
stroustrup.com FAQ
);
cout
bedeutet "Character Output" und
wcout
bedeutet "Wide Character Output".
Da die
dynamische Initialisierung
von
templated
Variablen ungeordnet ist, ist nicht garantiert, dass
std::cout
vor dem Beginn der Initialisierung solcher Variablen in einen verwendbaren Zustand initialisiert wurde, es sei denn, ein Objekt vom Typ
std::ios_base::Init
wurde konstruiert.
Beispiel
#include <iostream> struct Foo { int n; Foo() { std::cout << "static constructor\n"; } ~Foo() { std::cout << "static destructor\n"; } }; Foo f; // static object int main() { std::cout << "main function\n"; }
Ausgabe:
static constructor main function static destructor
Siehe auch
|
initialisiert Standard-Stream-Objekte
(öffentliche Mitgliedsklasse von
std::ios_base
)
|
|
|
schreibt in den Standard-C-Fehlerstrom
stderr
, ungepuffert
(globales Objekt) |
|
|
schreibt in den Standard-C-Fehlerstrom
stderr
(globales Objekt) |
|
|
Ausdruck vom Typ
FILE
*
assoziiert mit dem Eingabestrom
Ausdruck vom Typ FILE * assoziiert mit dem Ausgabestrom Ausdruck vom Typ FILE * assoziiert mit dem Fehlerausgabestrom (Makrokonstante) |