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
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';
}