C++ Dateiverwaltung: Open, Read, Write & Close Operationen meistern
Was ist Dateiverwaltung in C++?
Dateiverwaltung ermöglicht es, Programmdaten auf Speichermedien dauerhaft zu speichern. Indem Sie die Programmausgabe in eine Datei lenken, können Sie diese Daten später weiterverarbeiten, analysieren oder archivieren.
fstream‑Bibliothek robuste Klassen und Funktionen bereit, um nahtlos mit Dateien zu arbeiten.
In diesem Tutorial lernen Sie:
- Definition der Dateiverwaltung in C++
- Die
fstream‑Bibliothek und ihre Klassen - Dateien in verschiedenen Modi öffnen
- Dateien sicher schließen
- Daten in Dateien schreiben
- Daten aus Dateien lesen
Die fstream‑Bibliothek
Die fstream‑Bibliothek stellt drei Kernklassen bereit:
- ofstream – Ausgabestream zum Erstellen und Schreiben von Dateien.
- ifstream – Eingabestream zum Lesen vorhandener Dateien.
- fstream – Kombinierter Stream für Ein‑ und Ausgabeoperationen.
Kurze visuelle Referenz:

Zur Nutzung dieser Klassen binden Sie den Header fstream ein, und falls Konsolenausgabe gewünscht ist, auch iostream.
Dateien öffnen
Vor jeder Dateioperation muss die Datei geöffnet werden. Nutzen Sie ofstream für schreibenden Zugriff, ifstream für lesenden und fstream für beides. Jede Klasse bietet eine open()‑Methode:
open(dateiname, modus);
- dateiname – Pfad oder Name der Zieldatei.
- modus – optional; legt Zugriffsart fest. Häufige Flags:
| Wert | Beschreibung |
|---|---|
| ios::app | Append‑Modus – Schreibzugriffe werden ans Dateiende angehängt. |
| ios::ate | Öffnen und sofort zum Ende positionieren. |
| ios::in | Zum Lesen öffnen. |
| ios::out | Zum Schreiben öffnen. |
| ios::trunc | Vorhandene Datei auf Länge 0 kürzen. |
Mehrere Flags können per bitweisem OR (|) kombiniert werden.
Beispiel 1: Datei erstellen
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream my_file;
my_file.open("my_file", ios::out);
if (!my_file) {
cout << "Datei nicht erstellt!";
} else {
cout << "Datei erfolgreich erstellt!";
my_file.close();
}
return 0;
}
Ausgabe:

Screenshot des laufenden Programms:

Code‑Walkthrough:
iostreamfür Konsolen‑I/O einbinden.fstreamfür Dateistreams einbinden.std‑Namespace für Kürze nutzen.fstream‑Objektmy_fileinstanziieren.- Datei im Schreibmodus (
ios::out) öffnen. - Erfolg prüfen; andernfalls Fehlermeldung.
- Bei Erfolg Bestätigung ausgeben und Datei schließen.
return 0für normale Beendigung.
Dateien schließen
Obwohl C++ Streams beim Programmende automatisch flushes und schließt, ist es Good Practice, eine Datei nach der letzten Operation explizit zu schließen.
Die Methode close() steht bei fstream, ofstream und ifstream zur Verfügung:
void close();
In Dateien schreiben
Schreiboperationen nutzen den Stream‑Einfügeoperator (<<). Zu speichernder Text muss in Anführungszeichen stehen oder direkt gestreamt werden.
Beispiel 2: Text schreiben
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream my_file;
my_file.open("my_file.txt", ios::out);
if (!my_file) {
cout << "Datei nicht erstellt!";
} else {
cout << "Datei erfolgreich erstellt!";
my_file << "Guru99";
my_file.close();
}
return 0;
}
Ausgabe:

Code‑Screenshot:

Code‑Walkthrough:
- Notwendige Header einbinden.
fstream‑Objekt erstellen.- Zieldatei im Schreibmodus öffnen.
- Stream validieren.
- String "Guru99" in Datei einfügen.
- Stream schließen.
return 0.
Aus Dateien lesen
Leseoperationen nutzen den Stream‑Extraktionsoperator (>>) analog zu cin. Die Daten werden in Variablen passender Typen eingelesen.
Beispiel 3: Zeichen lesen
#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream my_file;
my_file.open("my_file.txt", ios::in);
if (!my_file) {
cout << "Keine solche Datei";
} else {
char ch;
while (1) {
my_file >> ch;
if (my_file.eof()) break;
cout << ch;
}
}
my_file.close();
return 0;
}
Ausgabe:

Screenshot des laufenden Codes:

Code‑Walkthrough:
iostreamundfstreameinbinden.- Datei zum Lesen öffnen (
ios::in). - Existenz prüfen; bei Fehlen Benutzer benachrichtigen.
- Zeichen einzeln lesen bis EOF erreicht ist.
- Jedes Zeichen auf Konsole ausgeben.
- Stream schließen.
return 0.
Zusammenfassung
- Dateiverwaltung persistiert Programmausgabe auf dauerhaftem Speicher.
- Streams abstrahieren Ein‑ und Ausgabegeräte.
- Die
fstream‑Bibliothek stellt Klassen für alle gängigen Dateioperationen bereit. - Immer
<fstream>(und bei Bedarf<iostream>) ganz oben einbinden. - Dateien mit passenden Modi öffnen, gewünschte Aktionen durchführen, Streams schließen.
C Sprache
- C-Dateiverwaltung: I/O mit fopen, fprintf, fread & fseek meistern
- FPGA Block RAM aus Textdateien mit VHDLs TEXTIO-Bibliothek initialisieren
- C++ Exception Handling meistern: Praktische try, catch, throw Beispiele
- Kommentare in C meistern: Klare, effektive Notizen schreiben
- Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
- C-Header-Dateien verstehen: Typen, Verwendung und Best Practices
- C++ Datei-I/O: Lesen & Schreiben mit fstream
- C++ Signalverarbeitung meistern: Sichere Interrupt-Verwaltung und saubere Programmausführung
- Python Datei-E/A: Eingabe- und Ausgabeoperationen meistern
- Mikrometer: Präzises Messen, Ablesen & Richtige Anwendung