💾 I/O & Stream-Architektur

C++ 14: Dateiverarbeitung & Binäre Streams

Robuste Dateiverarbeitung in C++: Textdateien zeilenweise lesen mit std::ifstream, Daten sicher schreiben mit std::ofstream und performanter Binär-I/O mit raw byte buffers.

💾 1. RAII-basierte Dateiverarbeitung

In C++ nutzt man für Dateizugriffe die Klassen std::ifstream (Input) und std::ofstream (Output) aus dem Header <fstream>. Da Dateihandles echte OS-Ressourcen sind, sorgt RAII dafür, dass Dateien beim Verlassen des Scopes automatisch geschlossen und Schreibpuffer geflusht werden.

📦 Didaktische Analogie: Das automatisierte Fließband

Ein Stream ist wie ein Förderband zwischen Festplatte und RAM. << legt Daten formatiert auf das Band, >> nimmt sie herunter. Im Binärmodus wird das Paket nicht ausgepackt, sondern als versiegelte Kiste (Byte-Block) am Stück transportiert.

⚡ 2. C / C++ Quick-Cheat-Sheet

Syntax / Anweisung Bedeutung & Funktion
std::ofstream out(pfad);Öffnet eine Datei zum Schreiben; erzeugt die Datei falls nicht existent.
if (!out.is_open()) return false;Prüft, ob Dateipfad und Zugriffsrechte gültig sind.
std::getline(in, zeile);Liest eine komplette Textzeile bis zum Newline-Zeichen ein.
in.read(reinterpret_cast<char*>(&data), size);Unformatierter Binär-Lesezugriff auf Rohbytes.

⚠️ 3. Häufige Stolperfallen & Anti-Patterns

⚠️ Fehlende Fehlerprüfung mit is_open()

Schreib- und Leseoperationen scheitern stillschweigend, wenn die Datei nicht geöffnet werden konnte (z.B. fehlende Schreibrechte). Prüfe immer is_open()!

⚠️ Windows/Linux Newline-Konvertierung (CRLF vs LF)

Wird eine Binärdatei im Standard-Textmodus geöffnet, wandelt die C++ Runtime unter Windows \r\n in \n um – binäre Bild- oder Archivdateien werden dadurch unbrauchbar beschädigt! Öffne Binärdateien stets mit std::ios::binary.

🧠 Diagnostischer Selbst-Check

Überprüfe dein Verständnis zu Speichersicherheit, Syntax und Systems-Design mit gezieltem Feedback:

🎯 Aufgaben & Checkliste

💻 In Web-IDE öffnen → ← C++ 13 C++ 15 →