Wie man Text an eine Datei in C++ anhängt

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie die Methoden std::ofstream und open(), um Text an eine Datei anzuhängen
  2. Verwenden Sie die Methoden std::fstream und open(), um Text an eine Datei anzuhängen
  3. Verwenden Sie die Methode write() mit std::fstream und open(), um Text an eine Datei anzuhängen
Wie man Text an eine Datei in C++ anhängt

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;
}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - C++ File