Wypisanie zawartości pliku

0

Cześć, mam problem ze swoim programem, mianowicie nie potrafię znaleźć błędu w funkcji drukującej zawartość pliku .dat. Funkcja zapisująca dane struktury (znaki i liczby):

save(User u[], int count){
FILE *fp=fopen("users.dat","wb");
fwrite(u, sizeof(User),count,fp);
fclose(fp);
}

a funkcja wypisująca to

char c;
FILE *fp=fopen("users.dat","rb");
while((c=fgetc(fp))!=EOF){
printf( "%c",c);
}
fclose(fp);

mógłby mi ktoś wskazać błąd?

0

Na jakiej podstawie twierdzisz że funkcja ma błąd?

1

Ten kod jest bezsensu.
Funkcja zapisująca zapisuje zawartość pamięci (dane binarnie), a funkcja odczytująca czyta coś znak po znaku. Nawet nie wiadomo czym jest ten User.
To tak jakby kazać czytać zwykłemu chińczykowi "Pana Tadeusza" w oryginale.

0

Musisz wczytać rekord po rekordzie:

User u;
while(fread(&u,sizeof(User),1,fp)>0) printf("Name: %s; Surname: %s\n",u.imie,u.nazwisko);

http://forum.4programmers.net/1208091

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