<iostream>
Deklariert Objekte, die das Auslesen und Schreiben in Standard-Streams steuern. Dies ist häufig der einzige Header, den Sie aus einem C++-Programm eingeben und ausgabe müssen.
Syntax
#include <iostream>
Hinweis
Die <iostream>
Bibliothek verwendet die #include <ios>
, , #include <istream>
#include <streambuf>
und #include <ostream>
Anweisungen.
Hinweise
Die Objekte können in zwei Gruppen unterteilt werden:
cin
cerr
,cout
undclog
sind Byte ausgerichtet, indem herkömmliche Byte-at-a-time-Übertragungen gemacht werden.wcin
,wcout
, , undwclog
sind breit ausgerichtet, übersetzen in und aus den breiten Zeichen, die das Programm internwcerr
bearbeitet.
Sobald Sie bestimmte Vorgänge in einem Datenstrom ausführen, z. B. die Standardeingabe, können Sie keine Vorgänge einer anderen Ausrichtung auf demselben Datenstrom ausführen. Daher kann ein Programm nicht austauschbar auf beides cin
und wcin
beispielsweise nicht ausgeführt werden.
Alle in dieser Kopfzeile deklarierten Objekte teilen eine spezielle Eigenschaft – Sie können davon ausgehen, dass sie vor beliebigen statischen Objekten erstellt werden, die Sie definieren, in einer Übersetzungseinheit, die enthält <iostream>
. Ebenso können Sie davon ausgehen, dass diese Objekte nicht zerstört werden, bevor die Destruktoren für solche statischen Objekte, die Sie definieren, nicht zerstört werden. (Die Ausgabeströme werden jedoch während der Programmbereinigung gespült.) Daher können Sie vor dem Start des Programms und nach dem Programmende sicher von oder in die Standarddatenströme lesen oder 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 erstellt wurden, da die unsichere Reihenfolge besteht, in der Übersetzungseinheiten an statischer Konstruktion teilnehmen. Um diese Objekte in einem solchen Kontext zu verwenden, müssen Sie zunächst 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 an einen Datenstrompuffer, der dem Objekt stderr
zugeordnet ist, in deklariert <cstdio>
.
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
nichtzero 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. Nachdem das Objekt erstellt wurde, gibt der Aufruf cin.tie
zurück &cout
.
Beispiel
In diesem Beispiel wird der Fehlerbit im Datenstrom festgelegt, cin
wenn es nicht numerische Zeichen enthält. Das Programm löscht das Fehlerbit und entfernt das ungültige Zeichen aus dem Stream, 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. Nachdem das Objekt erstellt wurde, ist der Ausdruck wcerr.flags & unitbuf
nichtzero. 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. Nachdem das Objekt erstellt wurde, gibt der Aufruf wcin.tie
zurück &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