2017-04-19 7 views
-1

ich versuche ersetzen Linie in Datei.Zeile in Datei C++ ersetzen

Beispiel

aaa bbb ccc 
bbb ccc ddd 
ccc ddd eee 

Ich zweite Linie mit so etwas wie

111 222 333 

so führen wird

aaa bbb ccc 
111 222 333 
ccc ddd eee 

Ich versuchte

while (getline(infile, curline)) 
{ 
    if (counter == line) 
    { 
     outfile << input1 << "\t" << input2 << "\t" << input3 << "\t" << input4 << endl; 
     break; 
    } 
    counter++; 
} 
ersetzen möchten

wo Zeile ist Nummer der Zeile, die ich ersetzen möchte.

Vielen Dank für Ihre Hilfe!

+0

@pingul Es ist nicht, ich ersetze Linie und ich finde es mit der Nummer dieser Linie, nicht Startwort. – Brky

+1

Klingt wie ein triviales Problem zu lösen, wenn Sie mit der dort gegebenen Antwort beginnen. – pingul

Antwort

0

Dateien sind nicht "nur ein Stück Speicher auf der Festplatte". Wenn Sie also vorhaben, die Datei zu ändern, müssen Sie eine neue Datei mit geändertem Inhalt erstellen und sie dann in den Namen der alten Datei umbenennen (natürlich mit dem Löschen der alten Datei). Also, versuchen Sie, Ihren Code zu etwas wie das zu ändern:

while (getline(infile, curline)) 
{ 
    if (counter == line) 
    { 
     // altered line creation 
     outfile << input1 << "\t" << input2 << "\t" << input3 << "\t" << input4 << endl; 
    } 
    else 
    { 
     // the line goes without changes 
     outfile << curline << endl; 
     counter++; 
    } 
} 
Verwandte Themen