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

  • cincerr, coutund clog sind Byte ausgerichtet, indem herkömmliche Byte-at-a-time-Übertragungen gemacht werden.

  • wcin, wcout, , und wclog sind breit ausgerichtet, übersetzen in und aus den breiten Zeichen, die das Programm intern wcerrbearbeitet.

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 wcinbeispielsweise 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::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 an einen Datenstrompuffer, der dem Objekt stderrzugeordnet 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