Dateiverarbeitung in C++

In dieser Lektion lernen Sie, wie C++ Dateien öffnet, liest, schreibt und schließt. Es wird der Umgang mit fstream, ifstream und ofstream erklärt.

1. Einbinden der Bibliotheken

Für Dateiverarbeitung wird die Standardbibliothek <fstream> benötigt.
#include <iostream>
#include <fstream>

using namespace std;

2. Dateistreamtypen

C++ unterscheidet drei Haupttypen:

3. Datei öffnen und schließen

Dateien müssen geöffnet werden, bevor sie gelesen oder beschrieben werden, und anschließend geschlossen werden.
ofstream outFile("output.txt");  // Datei öffnen zum Schreiben
if(!outFile) {
    cerr << "Fehler beim Öffnen der Datei!" << endl;
}
outFile << "Hallo Welt!" << endl;
outFile.close();  // Datei schließen

4. Lesen aus Dateien

Für das Lesen von Textdateien wird ifstream verwendet.
ifstream inFile("input.txt");
string zeile;
while(getline(inFile, zeile)) {
    cout << zeile << endl;
}
inFile.close();

5. Binärdateien

Dateien können auch binär gelesen oder geschrieben werden, z.B. für strukturierte Daten.
struct Punkt { double x; double y; };
Punkt p = {1.0, 2.0};

ofstream out("punkte.bin", ios::binary);
out.write(reinterpret_cast<char*>(&p), sizeof(Punkt));
out.close();

Punkt p2;
ifstream in("punkte.bin", ios::binary);
in.read(reinterpret_cast<char*>(&p2), sizeof(Punkt));
in.close();

cout << p2.x << "," << p2.y << endl;
Binäre Dateien speichern Daten genau wie im Speicher, ohne Textdarstellung.

6. Fehlerbehandlung

Dateien können aus verschiedenen Gründen nicht geöffnet werden. Prüfen Sie den Zustand immer mit .fail() oder !stream.
ifstream file("nicht_existiert.txt");
if(!file) {
    cerr << "Fehler: Datei konnte nicht geöffnet werden!" << endl;
}

7. Zusammenfassung