Witam,
Nie wiem jak w stworzonym już pliku, np. txt. Zmienić treść w określonym miejscu np :
"Imię : xxx
Nazwisko : xxx"
Mając stworzony plik txt. z taką treścią zamienić xxx na wartość zawartą w tablicy char'ów. Jak powinienem to zrobić w c++ ?
Witam,
Nie wiem jak w stworzonym już pliku, np. txt. Zmienić treść w określonym miejscu np :
"Imię : xxx
Nazwisko : xxx"
Mając stworzony plik txt. z taką treścią zamienić xxx na wartość zawartą w tablicy char'ów. Jak powinienem to zrobić w c++ ?
Nie da się zmieniać nic w pliku. Można go wczytać, zmienić coś w pamięci i potem zapisać znów do pliku.
Będziesz musiał napisać parser tego co jest w pliku, albo to obejść: jeśli znasz strukturę pliku i jest ona jednorodna, to wczytujesz najpierw niepotrzebne słowa i nic z nimi nie robisz, a potem te potrzebne.
A potrzebne do tego będą zwyczajne operacje na plikach. Poczytaj o bibliotece fstream ze standardu.
Ja bym wczytal caly plik do tablicy znakow (biblioteka fstream sluzy do operacji na plikach) i wczytywal do struktury dane w sposob:
Po wykryciu ciagu "Imie:" zapisuje kazdy kolejny znak do struktury az do napotkania ciagu "Nazwisko: ". Nastepnie zczytuje do struktury kolejne znaki az do napotkania "Imie: ". Te kolejne znaki zapisuje do kolejnej struktury. Tak zczytujesz i zapisujesz az do zakonczenia pliku tekstowego.
Jak masz gotowa strukture osob (Imion i Nazwisk), zmieniasz sobie w stukturach co zechcesz. Jak juz ci sie odechcialo zmian i chcesz je zapisac w pliku, otwierasz go (fstream), czyscisz plik txt.
i wpisujesz do niego dane w kolejnosci:
wpisz tekst: "imie: ";
wpisz tekst: struktura[n].imie;
wpisz tekst: "\nNazwisko: ";
wpsiz tekst: struktura[n].nazwisko;
wpisz tekst: "\nimie: ";
wpisz tekst: struktura[n+1].imie;
wpisz tekst: "\nNazwisko: ";
wpisz tekst: struktura[n+1].nazwisko;
Tak wpisujesz do pliku az do ostatniej struktury i masz gotowy plik.
Proponuje ci wysilic sie troszke i sporzadzic sobie liste jednokierunkowa.
Tu masz kurs fstream:
http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305