Dateien mit ofstream schreiben
Ausgabedateien schreiben
Dateien mit ofstream schreiben ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist ofstream?
std::ofstream (Ausgabedateistream) schreibt Daten in Dateien. Es funktioniert wie std::cout, aber sein Ziel ist eine Datei.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("hello.txt");
out << "Hello, file!\n";
std::cout << "wrote file\n";
return 0;
}Text schreiben
Verwenden Sie den Operator <<, um Strings und Zahlen zu schreiben, genau wie bei der Ausgabe auf der Konsole.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("report.txt");
out << "Score: " << 95 << '\n';
out << "Grade: A\n";
std::cout << "done\n";
return 0;
}Standardmäßig leeren
Das Öffnen einer vorhandenen Datei mit ofstream löscht ihren bisherigen Inhalt. Jeder Durchlauf beginnt mit einer leeren Datei.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("t.txt") << "old content\n";
std::ofstream out("t.txt");
out << "new content\n";
std::ifstream in("t.txt");
std::string line; std::getline(in, line);
std::cout << line << '\n';
return 0;
}Mit dem Modus app anhängen
Übergeben Sie std::ios::app, um den vorhandenen Inhalt beizubehalten und neue Daten am Ende hinzuzufügen.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("log.txt") << "line1\n";
std::ofstream out("log.txt", std::ios::app);
out << "line2\n";
out.close();
std::ifstream in("log.txt");
std::string l; int n = 0;
while (std::getline(in, l)) ++n;
std::cout << n << " lines\n";
return 0;
}Prüfen, ob das Schreiben erfolgreich war
Prüfen Sie den Stream nach dem Öffnen. Befindet er sich in einem Fehlerzustand, schlägt das Schreiben still und ohne Meldung fehl.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("ok.txt");
if (!out) {
std::cout << "failed to open\n";
return 1;
}
out << "safe write\n";
std::cout << "write ok\n";
return 0;
}Zahlen schreiben und formatieren
E/A-Manipulatoren wie std::fixed und std::setprecision können auch auf Dateistreams angewendet werden.
#include <iostream>
#include <fstream>
#include <iomanip>
int main() {
std::ofstream out("pi.txt");
out << std::fixed << std::setprecision(3) << 3.14159 << '\n';
out.close();
std::ifstream in("pi.txt");
std::string s; in >> s;
std::cout << s << '\n';
return 0;
}Eine Datenfolge in einer Schleife schreiben
Schreiben Sie viele Zeilen in einer Schleife. Jede Iteration sendet einen Datensatz an die Datei.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("squares.txt");
for (int i = 1; i <= 5; ++i) out << i << ' ' << i * i << '\n';
out.close();
std::cout << "wrote 5 rows\n";
return 0;
}Den Puffer leeren
Die Ausgabe wird gepuffert. std::flush oder std::endl schreibt den Puffer sofort auf den Datenträger; auch das Schließen leert den Puffer.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("flush.txt");
out << "important" << std::flush;
std::cout << "flushed to disk\n";
return 0;
}endl vs. Zeilenumbruch
'\n' fügt lediglich einen Zeilenumbruch hinzu. std::endl fügt einen Zeilenumbruch hinzu und leert den Puffer, was in engen Schleifen langsamer ist.
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("nl.txt");
out << "fast\n"; // newline only
out << "slow" << std::endl; // newline + flush
std::cout << "both written\n";
return 0;
}Schreiben und anschließend lesen
Ein häufiges Muster: Daten schreiben, die Datei schließen und anschließend zum erneuten Lesen öffnen.
#include <iostream>
#include <fstream>
int main() {
{
std::ofstream out("rt.txt");
out << 7 << ' ' << 8 << '\n';
}
std::ifstream in("rt.txt");
int a, b; in >> a >> b;
std::cout << a + b << '\n';
return 0;
}Öffnungsmodi auswählen
Kombinieren Sie Flags mit |. Häufige Modi: ios::out (Standard), ios::app (Anhängen), ios::trunc (Löschen).
#include <iostream>
#include <fstream>
int main() {
std::ofstream out("modes.txt", std::ios::out | std::ios::trunc);
out << "fresh\n";
std::cout << "opened with explicit modes\n";
return 0;
}Kurztest
Testen Sie Ihr Verständnis der ofstream-Modi.
Zusammenfassung
Sie haben gelernt, dass std::ofstream:
- mit
<<schreibt und den Inhalt standardmäßig leert - mit
std::ios::appDaten anhängt - die Ausgabe puffert;
std::flush/std::endl/das Schließen sie auf den Datenträger schreiben
Als Nächstes verarbeiten Sie rohe Bytes mit binärer Datei-E/A.
Häufig gestellte Fragen
Ist die Lektion „Dateien mit ofstream schreiben“ kostenlos?
Ja — der vollständige Text von „Dateien mit ofstream schreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dateien mit ofstream schreiben“?
Ausgabedateien schreiben Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C++ Academy zu starten?
Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Dateien mit ofstream schreiben“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?
Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Dateien mit ifstream lesen
- Dateien mit ofstream schreiben
- Binäre Datei-Ein-/Ausgabe
- Fehlerbehandlung und Zustand