Zapis do określonej linii w pliku? Jak zrobić.

0

Witam

W jaki sposób mogę zapisać dane do pliku tekstowego do wybranej linii? Szukałem, ale nic nie znalazłem. Czy znajdzie się ktoś, kto choć naprowadzi mnie na rozwiązanie.

Z góry dziękuję za pomoc.

0

Nie możesz nic wstawić do środka pliku, nie możesz nic skasować. Możesz jedynie zastąpić jeden fragment drugim o ile są takiej samej długości.
Można jednak dokonać usunięć lub podmian przez pamięć lub inny plik.
Czyli robisz kopię, kopie wpisujesz z powrotem "modyfikując" w locie.

0

Pseudo kod:

Wczytać pustą linie X razy.
Wczytać reszte pliku (X+1) do zmiennej / zamknąć plik.

Wczytać puste linie kolejne X razy.
Dopisać co chcesz dopisać.
Wrzucić reszte pliku ze zmiennej / zamknąć plik.

0

Aha rozumiem. A jeżeli z pomocą getline wczytam sobie linijką, to w jaki sposób sprawdzić 1 znak w danym wierszu (bo jeżeli miałbym tam cyfrę poniekąd rozwiązał bym problem, bo jeżeli ktoś wpisałby 7, to wyświetliło by 7 linijką).

0

Zależy do czego tą linię wczytałeś, jak do string-a to 1 znak będzie w nazwa_stringa[0].

ps jak do czegoś innego to nie wczytałeś całej linijki.

0

A jak ktoś wpiszę A przy pierwszej a 99 przy drugiej, to ...

0

W sumie to w celu liczenia linijek najprościej było by liczyć getline-y w jakimś while-u.

0

Liczenie linijek:

do
{
     getline(plik, temp);
     licznik++;
}
while(!plik.eof());

licznik - ilość linii

0

Używać getline do liczenia wierszy? Barbarzyństwo!

int licznik=0,ch,last=0;
while((ch=file.get())!=EOF) if((last=ch)=='\n') ++licznik;
licznik+=(last!='\n');

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