Zadanie polega na utworzeniu dwuwymiarowej tablicy struktur poprzez dynamiczną alokację. Liczbę wierszy, kolumn oraz resztę danych należy odczytać z pliku binarnego, następnie przypisać kolejno odczytane wartości do tablicy. Na końcu otworzyć plik tekstowy i to z czym mam problem : zapisać tak utworzoną tablicę WIERSZAMI do tego pliku.
Kod:
#include<stdio.h>
#include<stdlib.h>
struct dane {
int nr;
char nazwa[15];
};
int main()
{
int i,wiersze, kolumny;
FILE *fp, *wp;
fp = fopen("plik.dat", "rb"); // otwieram plik binarny do odczytu
if (!fp)
{
printf("Nie udalo sie otworzyc pliku\n");
exit(-1);
}
fread(&kolumny,sizeof(int),1,fp); // odczytuje liczbe kolumn
fread(&wiersze,sizeof(int),1,fp); // oraz liczbe wierszy
struct dane **wsk;
wsk = (struct dane **) malloc (wiersze * sizeof(struct dane *));
for(i=0;i<wiersze;i++)
wsk[i] = (struct dane *) malloc (kolumny * sizeof (struct dane ));
if (!wsk)
{
printf("Przydzial pamieci nie powiodl sie\n");
exit(-1);
}
fread(wsk,sizeof(int),wiersze*kolumny,fp); // odczytuje z pliku wszystkie elementy typu int struktury
fread(wsk,sizeof(char),wiersze*kolumny,fp); // odczytuje z pliku elementy char struktury
fclose(fp);
wp = fopen("plik2.txt","w");
if (!wp)
{
printf("Nie udalo sie otworzyc pliku\n");
exit(-1);
}
// Tu powinien znalezc sie zapis wierszami do pliku tekstowego
for (i=0;i<wiersze;i++)
free(wsk[i]);
free(wsk);
fclose(wp);
return 0;
}