Programmieren in C++
Kapitel 8: Dateibearbeitung

8.1 Vorbemerkung: Datenströme - Streams

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 << und >> 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 <fstream.h>
...
ofstream datei("liste.txt");
if( !datei ) throw "Fehler beim Öffnen!";
...
datei << "Dies ist eine Liste" << endl;
...
datei.close();

8.3 Dateien lesen

Jetzt gibt es eigentlich nichtmehr viel zu sagen. Man muss nur einfach alles umdrehen, was man über das schrieben in Dateien weiß. Das sieht dann so aus:

#include <fstream.h>
...
ifstream 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 ??

© Gerhard Zapf
Exceptions
Sitemap
www.tutorialpage.de
Streams
Diese Seite wurde seit dem 12.07.01 genau 195 mal abgerufen.
Letzte Änderung: 11.09.2003