Usuwanie linijek w pliku txt

0

Witam mam problem.
Muszę usunąć z plilku txt 6 linijek(uzytkownik podaje od której linijki ma zacząć) i nie mam bladego pojęcia jak to zapisać, próbowałem coś kombinować z seekp ale no nie wiem.
Tak samo nie podoba mi się rozwiązanie z tworzeniem nowego pliku i zapisywaniem całego starego z wyjątkiem tych 6 linijek. Jakbyście mieli jakieś porady to byłbym wdzięczny.

0

getline, pobiera linie i wrzuca je do stringa, istream& getline (istream& is, string& str);
https://www.cplusplus.com/reference/string/string/getline/

To można, w pętli, użyć metod "na stringu", np. replace

while (getline(is, line)){
    //line.replace, whatever
}
3

Po co replace jakieś? Jak masz usunąć n linijek i wczytujesz po linii to po prostu ich nie kopiuj.

void copy_except_n_lines_from_mth(istream& is, ostream& os, int n, int m)
{
    string buf;
    for(int i = 0; i < m && getline(is, buf); i++)
         os << buf << '\n';
    for(int i = 0; i < n && getline(is, buf); i++)
         /* no op */;
    while(getline(is, buf))
        os << buf << '\n';
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1