Próbowałem fscanfem, ale działa mi to tylko, jak z góry wiem ile cyfr mają te liczby, które chcę pobrać do zmiennych, i to tylko wtedy kiedy liczby są oddzielone spacją, a nie jak są w kolejnych liniach. Może podam fragment kodu i mnie poprawicie, jeśli będzie coś do poprawienia:
Tym ładuję dane:
void Laduj(post *ja)
{
int temp;
if ((plik=fopen("test.txt", "r"))==NULL)
{
printf ("Nie mogę otworzyć pliku test.txt do zapisu!\n");
getchar();[code]
exit(-10); } fscanf(plik,"%s",ja->Imie); fseek(plik,1,1); fscanf(plik,"%d",&temp); ja->wzrost=temp; fseek(plik,1,1); fscanf(plik,"%d",&temp); ja->wiek=temp; fseek(plik,1,1); fscanf(plik,"%d",&temp); ja->waga=temp; }
void Save(post ja)
{
if ((plik=fopen("test.txt", "w"))==NULL)
{
printf ("Nie mogę otworzyć pliku test.txt do odczytu!\n");
getchar();
exit(-10);
}
fprintf(plik,"%s",ja.Imie);
fseek(plik,1,1);
fprintf(plik,"%d",ja.wzrost);
fseek(plik,1,1);
fprintf(plik,"%d",ja.wiek);
fseek(plik,1,1);
fprintf(plik,"%d",ja.waga);
}
Widzicie gdzieś jakieś błędy?
/edit: Teraz w ogóle nie działa… Zapisuje ładnie, ale odczytuje tylko imię, a reszta to jakieś krzaczki. A wczoraj czytało mi imię + jednocyfrowe dane …
Tym zapisuję: