8.1 Vorbemerkung: Datenströme - Streamsbr />
Leider komm ich jetzt nichtmehr drum rum: Ich muss eine Anmerkung zur Art und Weise machen, wie in C++ Daten ein- und ausgegeben werden. Das Modell ist wie folgt: Zwischen dem PC und dem Ein- oder Ausgabegerät existiert eine Art Kanal, in dem die Daten als Strom verschoben werden. Die Stream-Operatoren > geben die Richtung an, in die verschoben wird, wobei links das Gerät und rechts das Objekt im Speicher angegeben wird.
So ist cin und cout als Ein- bzw. Ausgabegerät zu verstehen. Das c steht dabei für Console und meint eben Tastatur und Bildschrim. Tatsächlich sind cin und cout Instanzen der Klasse istream (cin) und ostream (cout), die bereits in iostream.h angelegt wurden.
Dateibehandlung funktioniert exakt genauso. Nur heißt die Header-Datei fstream.h und die Klassen ifstream und ofstream. Es wurden aber noch keine Objekte instanziert, das ist Aufgabe des Programmierers!
8.2 Dateien beschreiben
Um eine Datei zum schreiben zu öffnen, müssen wir zunächst ein Objekt der Klasse ofstream anlegen. Dem Konstuktor geben wir dabei den Pfad und den Namen der Datei mit. Das Objekt selbst erhält den Wahrheitswert TRUE, falls beim Öffnen ein Fehler auftrat. Ich will nur mal ein Segment als Beispiel angeben. Die Ausgabe in eine Datei unterscheidet sich ansonsten nicht von der Ausgabe auf den Bildschirm:
#include
...
ofstream datei(\"liste.txt\");
if( !datei ) throw \"Fehler beim Öffnen!\";
...
datei text; // Eine Zeile in die Variable text einlesen
...
datei.close();
Mehr ist dazu nicht zu sagen. Oder doch ??
|