Wie schreibe ich in C ++ in die Mitte einer Datei?

Ich denke, das sollte recht einfach sein, aber mein Googeln hat bisher nicht geholfen ... Ich muss in eine vorhandene Datei in C ++ schreiben, aber nicht unbedingt am Ende der Datei.

Ich weiß, dass ich das Flag @ übergeben kann, wenn ich nur Text an meine Datei anhängen möchtios:app bei Anrufopen auf meinem Stream-Objekt. Ich schreibe jedoch nur bis zum Ende der Datei, aber nicht in die Mitte.

Ich habe ein kurzes Programm erstellt, um das Problem zu veranschaulichen:

#include <iostream>
#include <fstream>

using namespace std;

int main () {

  string path = "../test.csv";

  fstream file;
  file.open(path); // ios::in and ios::out by default

  const int rows = 100;
  for (int i = 0; i < rows; i++) {
    file << i << "\n";
  }  

  string line;
  while (getline(file, line)) {
    cout << "line: " << line << endl; // here I would like to append more text to certain rows
  }


  file.close();

}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage