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