Wie man Text an eine Datei in C++ anhängt
-
Verwenden Sie die Methoden
std::ofstream
undopen()
, um Text an eine Datei anzuhängen -
Verwenden Sie die Methoden
std::fstream
undopen()
, um Text an eine Datei anzuhängen -
Verwenden Sie die Methode
write()
mitstd::fstream
undopen()
, um Text an eine Datei anzuhängen
Dieser Artikel stellt mehrere C++-Methoden zum Anhängen von Text an eine Datei vor.
Verwenden Sie die Methoden std::ofstream
und open()
, um Text an eine Datei anzuhängen
Zuerst sollten wir ein ofstream
-Objekt erzeugen und dann seine Mitgliedsfunktion open
nennen. Diese Methode nimmt einen Dateinamen als String
-Objekt für das erste Argument an. Als zweites Argument können wir den Modus “open” übergeben, indem wir vordefinierte konstante Werte angeben, die in der folgenden Tabelle gezeigt werden:
Konstante | Erläuterung |
---|---|
std::ios_base::app |
sich vor jedem Schreiben bis zum Ende des Streams bemühen |
std::ios_base::binary |
im Binärmodus öffnen |
std::ios_base::in |
zum Lesen geöffnet |
std::ios_base::out |
offen zum Schreiben |
std::ios_base::trunc |
den Inhalt des Streams beim Öffnen verwerfen |
std::ios_base::ate |
sich unmittelbar nach der Eröffnung um das Ende des Stroms bemühen |
Beachten Sie, dass das folgende Code-Beispiel eine Datei namens tmp.txt
im aktuellen Arbeitsverzeichnis erzeugt. Sie können den vollständigen Pfad einer Datei übergeben, um sie an einem anderen Ort zu erstellen oder anzuhängen.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::ofstream;
using std::string;
int main() {
string filename("tmp.txt");
ofstream file_out;
file_out.open(filename, std::ios_base::app);
file_out << "Some random text to append." << endl;
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Ausgabe:
Done !
Verwenden Sie die Methoden std::fstream
und open()
, um Text an eine Datei anzuhängen
Alternativ können wir das vorhergehende Beispiel mit Hilfe des fstream
implementieren, der die Möglichkeit bietet, eine bestimmte Datei zum Lesen und Schreiben/Anhängen zu öffnen. Diese Methode ist eine universelle Möglichkeit, Datei-Streams zu manipulieren. Beachten Sie, dass wir auch eine Validierung hinzugefügt haben, wenn die Anweisung mit dem is_open
-Aufruf, der verifiziert, ob der Stream mit der angegebenen Datei verknüpft ist.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::fstream;
using std::string;
int main() {
string filename("tmp.txt");
fstream file;
file.open(filename, std::ios_base::app | std::ios_base::in);
if (file.is_open()) file << "Some random text to append." << endl;
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Verwenden Sie die Methode write()
mit std::fstream
und open()
, um Text an eine Datei anzuhängen
Eine andere Methode, um dieses Problem zu lösen, ist der explizite Aufruf der Write
Member-Funktion aus dem fstream
-Objekt, anstatt den <<
-Operator zu verwenden, wie wir es in den vorherigen Beispielen getan haben. Diese Methode sollte für die meisten Szenarien schneller sein, aber erstellen Sie immer ein Profil Ihres Codes und vergleichen Sie die Zeiten, wenn Sie strenge Leistungsanforderungen haben.
#include <fstream>
#include <iostream>
using std::cout;
using std::endl;
using std::fstream;
using std::string;
int main() {
string text("Some huge text to be appended");
string filename("tmp.txt");
fstream file;
file.open(filename, std::ios_base::app);
if (file.is_open()) file.write(text.data(), text.size());
cout << "Done !" << endl;
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook