Elektronika - baza wiedzy

Jak skopiować zawartość pliku tekstowego linia po linii?


Do obsługi plików posłużymy się klasą fstream, a do pobierania pojedynczych linii z pliku funkcją getline, która pobiera dwa argumenty - uchwyt pliku, z którego mają być pobierane dane i bufor do którego mają zostać skopiowane - w naszym przypadku obiekt typu string o nazwie buf.

...
#include <fstream>
...

    ifstream old_file("path1");
    ofstream new_file("path2");
    
    string buf;
    
    while(getline(old_file, buf))
       new_file << buf << "\n";

    old_file.close();
    new_file.close();

W miejscach path1 i path2 należy podać ścieżkę do pliku kopiowanego i wynikowego. Należy również pamiętać, aby w samej ścieżce używać - \\ - zamiast - \. Sama funkcja getline pobiera całą linię z pliku, ale bez znaku nowego wiersza, dlatego też, zapisując zawartość buf do pliku wynikowego należy pamiętać o dodaniu znaku nowego wiersza - "\n".