<iostream>
Deklariert Objekte, die das Auslesen und Schreiben in Standard-Streams steuern. Dies ist häufig der einzige Header, den Sie für die Eingabe und Ausgabe eines C++-Programms benötigen.
Syntax
#include <iostream>
Hinweis
Die <iostream>
Bibliothek verwendet die #include <ios>
Anweisungen , #include <streambuf>
, , #include <istream>
und #include <ostream>
Anweisungen.
Hinweise
Die Objekte können in zwei Gruppen unterteilt werden:
cin
,cout
,cerr
undclog
sind Byte ausgerichtet und führen herkömmliche Byte-zu-Zeit-Übertragungen.wcin
,wcout
,wcerr
undwclog
sind breit ausgerichtet, übersetzen in und von den breiten Zeichen, die das Programm intern bearbeitet.
Sobald Sie bestimmte Vorgänge in einem Datenstrom ausführen, z. B. die Standardeingabe, können Sie keine Vorgänge einer anderen Ausrichtung für denselben Datenstrom ausführen. Daher kann ein Programm nicht austauschbar sowohl als cin
wcin
auch , z. B. funktionieren.
Alle in diesem Header deklarierten Objekte teilen eine eigenartige Eigenschaft . Sie können davon ausgehen, dass sie vor allen statischen Objekten erstellt werden, die Sie definieren, in einer Übersetzungseinheit, die enthalten <iostream>
ist. Ebenso können Sie davon ausgehen, dass diese Objekte nicht vor den Destruktoren für solche statischen Objekte zerstört werden, die Sie definieren. (Die Ausgabedatenströme werden jedoch beim Beenden des Programms geleert.) Daher können Sie vor dem Programmstart und nach dem Programmende sicher auslesen oder in die Standarddatenströme schreiben.
Diese Garantie ist jedoch nicht universell. Ein statischer Konstruktor kann eine Funktion in einer anderen Übersetzungseinheit aufrufen. Die aufgerufene Funktion kann nicht davon ausgehen, dass die in dieser Kopfzeile deklarierten Objekte aufgrund der unsicheren Reihenfolge erstellt wurden, in der Übersetzungseinheiten an der statischen Konstruktion teilnehmen. Um diese Objekte in einem solchen Kontext zu verwenden, müssen Sie zuerst ein Objekt der Klasse ios_base::Init
erstellen.
Globale Streamobjekte
Name | Beschreibung |
---|---|
cerr |
Gibt den globalen cerr -Stream an. |
cin |
Gibt den globalen cin -Stream an. |
clog |
Gibt den globalen clog -Stream an. |
cout |
Gibt den globalen cout -Stream an. |
wcerr |
Gibt den globalen wcerr -Stream an. |
wcin |
Gibt den globalen wcin -Stream an. |
wclog |
Gibt den globalen wclog -Stream an. |
wcout |
Gibt den globalen wcout -Stream an. |
cerr
Das Objekt cerr
steuert die Ausgabe eines Datenstrompuffers, der dem Objekt stderr
zugeordnet ist , das in <cstdio>
deklariert ist.
extern ostream cerr;
Rückgabewert
Ein ostream
-Objekt.
Hinweise
Das Objekt steuert ungepufferte Einfügevorgänge in die Standardfehlerausgabe als Byte-Stream. Nachdem das Objekt erstellt wurde, ist der Ausdruck cerr.flags & unitbuf
ungleich Null und cerr.tie() == &cout
. Weitere Informationen finden Sie unter cerr.flags
und unitbuf
.
Beispiel
// iostream_cerr.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void TestWide( )
{
int i = 0;
wcout << L"Enter a number: ";
wcin >> i;
wcerr << L"test for wcerr" << endl;
wclog << L"test for wclog" << endl;
}
int main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
cerr << "test for cerr" << endl;
clog << "test for clog" << endl;
TestWide( );
}
cin
Gibt den globalen cin
-Stream an.
extern istream cin;
Rückgabewert
Ein istream
-Objekt.
Hinweise
Das Objekt steuert Extraktionen aus der Standardausgabe als Byte-Stream. Sobald das Objekt erstellt wurde, wird der Aufruf cin.tie
zurückgegeben &cout
.
Beispiel
In diesem Beispiel wird das Fail-Bit im Datenstrom festgelegt, cin
wenn es sich um nicht numerische Zeichen handelt. Das Programm löscht das Fail-Bit und entfernt das ungültige Zeichen aus dem Datenstrom, um fortzufahren.
// iostream_cin.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "enter choice:";
cin >> x;
while (x < 1 || x > 4)
{
cout << "Invalid choice, try again:";
cin >> x;
// not a numeric character, probably
// clear the failure and pull off the non-numeric character
if (cin.fail())
{
cin.clear();
char c;
cin >> c;
}
}
}
2
clog
Gibt den globalen clog
-Stream an.
extern ostream clog;
Rückgabewert
Ein ostream
-Objekt.
Hinweise
Das Objekt steuert gepufferte Einfügevorgänge in die Standardfehlerausgabe als Byte-Stream.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von clog
.
cout
Gibt den globalen cout
-Stream an.
extern ostream cout;
Rückgabewert
Ein ostream
-Objekt.
Hinweise
Das Objekt steuert Einfügevorgänge für die Standardausgabe als Byte-Stream.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von cout
.
wcerr
Gibt den globalen wcerr
-Stream an.
extern wostream wcerr;
Rückgabewert
Ein wostream
-Objekt.
Hinweise
Das Objekt steuert ungepufferte Einfügevorgänge in die Standardfehlerausgabe als weiten Stream. Sobald das Objekt erstellt wurde, ist der Ausdruck wcerr.flags & unitbuf
kein Zero. Weitere Informationen finden Sie unter wcerr.flags
und unitbuf
.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von wcerr
.
wcin
Gibt den globalen wcin
-Stream an.
extern wistream wcin;
Rückgabewert
Ein wistream
-Objekt.
Hinweise
Das Objekt steuert Extraktionen aus der Standardausgabe als weiten Stream. Sobald das Objekt erstellt wurde, wird der Aufruf wcin.tie
zurückgegeben &wcout
.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von wcin
.
wclog
Gibt den globalen wclog
-Stream an.
extern wostream wclog;
Rückgabewert
Ein wostream
-Objekt.
Hinweise
Das Objekt steuert gepufferte Einfügevorgänge für die Standardfehlerausgabe als weiten Stream.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von wclog
.
wcout
Gibt den globalen wcout
-Stream an.
extern wostream wcout;
Rückgabewert
Ein wostream
-Objekt.
Hinweise
Das Objekt steuert Einfügevorgänge für die Standardausgabe als weiten Stream.
Beispiel
Unter cerr
finden Sie ein Beispiel für die Verwendung von wcout
.
CString
-Instanzen in einer wcout
-Anweisung müssen in const wchar_t*
umgewandelt werden, wie dies im folgenden Beispiel gezeigt ist.
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
Weitere Informationen finden Sie unter Basic CString Operations.
Siehe auch
Headerdateienreferenz
Threadsicherheit in der C++-Standardbibliothek
iostream-Programmierung
iostreams-Konventionen