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.
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.
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.
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.
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ą).
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.
A jak ktoś wpiszę A przy pierwszej a 99 przy drugiej, to ...
W sumie to w celu liczenia linijek najprościej było by liczyć getline-y w jakimś while-u.
Liczenie linijek:
do
{
getline(plik, temp);
licznik++;
}
while(!plik.eof());
licznik - ilość linii
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');