Grundlegende Beispiele:
Diese Objekte kapseln oder virtualisieren Hardware bzw. entsprechende Schnittstellen.
Wir verwenden diese Objekte so, als ob es die Geräte selbst wären.
cout, cerr und cin stehen zur Verfügung, wenn die Headerdatei <iostream> (neu) beziehungsweise <iostream.h> (alt) einbezogen wird. Wird der neue Standard verwendet, gehören cout, cerr und cin dem Namensraum (namespace) std an.
Zu diesen Objekten gibt es spezielle leistungsfähige Funktionen sowie insbesondere die Operatoren "<<" und ">>". Auf cout und cerr ist der Operator << mehrfach überladen. Er existiert für jeden grundlegenden Datentyp (char, int, double, ...) einmal.
Wenn ein int-Wert ausgegeben werden soll, wählt der Compiler den Operator << mit dem Parametertyp int, bei double den Operator << mit dem Parametertyp double ...
Weiterhin sind die Operatoren << so gestaltet, dass sie alle den Ausgabestream zurückliefern. "cout << x;" liefert cout zurück. Somit können wir die folgende Sequenz kürzer schreiben.
cout << x; cout << y;kürzer:
(cout << x) << y; // cout << x liefert wieder coutWeil der Operator << stärker nach links bindet, können wir die Klammer auch weglassen und notieren:
cout << x << y;Weil auch der zweite Operator << cout liefert, könnten wir einen weiteren Operatoraufruf dranhängen:
cout << x << y << z;
Für den Einlesestream cin und den Einleseoperator >> gelt entsprechendes mit umgekehrter Datenflußrichtung.
Einfaches Programm zum Testen von Streams - Dateiname: streams.cpp |
---|
#include <iostream> // oder alt: #include <iostream.h>
|
Die drei Objekte cout, cerr und cin verhalten sich unterschiedlich. Insbesondere der Vergleich von cout und cerr verdient besondere Beachtung. Den Unterschied können Sie selbst herausfinden, indem Sie den unten abgebildeten Quelltext kompilieren und das Programm per Kommando in einem Kommandozeilenfenster auf verschiedene Weisen aufrufen (Programmname sei streams.exe).
streams streams > datei.txt streams > datei.txt < datei.txt |
einfacher Aufruf mit Umleitung der Ausgabe in eine Datei mit Umleitung von Ein- und Ausgabe |
Testen Sie diese Aufrufe!
Suchen Sie nach einer Datei "datei.txt" und lassen Sie sich deren Inhalt ausgeben (type datei.txt)!
Was stellen Sie fest?