2017-04-23 6 views
0

Beispiel, ich habe eine sample.txt Datei mit Inhalt:Wie fügt man Text in eine bestehende Datei ein?

1 2 3 7 8 9 10 

und ich möchte 4 5 6 in Datei einfügen, so haben

1 2 3 4 5 6 7 8 9 10 

, dass die Zahlen in der richtigen Stelle eingefügt werden.

+0

Ich habe den Titel aktualisiert, um es klarer zu machen – anatolyg

+0

Darf ich fragen, wo Sie dieses verwenden werden? Ich schlage vor, die Werte in einem Array in einer JSON-Datei zu speichern, könnte eine sicherere Wahl sein. – Bram

Antwort

1

Dateien unterstützen im Allgemeinen nicht das Einfügen von Text in der Mitte. Sie sollten die Datei lesen, den Inhalt aktualisieren und die Datei überschreiben.

Verwenden Sie einen sortierten Behälter, z.B. std::set, um den Inhalt der Datei im Speicher zu halten.

std::set<int> contents; 

// Read the file 
{ 
    std::ifstream input("file"); 
    int i; 
    while (input >> i) 
     contents.insert(i); 
} 

// Insert stuff 
contents.insert(4); 
contents.insert(5); 
contents.insert(6); 

// Write the file 
{ 
    std::ofstream output("file"); 
    for (int i: contents) 
     output << i << ' '; 
} 
Verwandte Themen