<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, cerrund clog sind Byte ausgerichtet und führen herkömmliche Byte-zu-Zeit-Übertragungen.

  • wcin, wcout, wcerrund wclog 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 cinwcinauch , 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::Initerstellen.

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