Struktury, rekord bazy, odczyt z pliku

0

Mam do napisania program, w którym należy stworzyć dynamicznie alokowaną tablicę wskaźników do struktur, struktury są z dynamicznie tworzonymi polami danych (char*). Struktura ma zawierać 3 pola tekstowe. Następnie konieczny jest zapis i odczyt danych z pliku (format - każdy rekord bazy to 3 kolejne linie w pliku). W przypadku braku 3 linii - rekord wyrzucamy. Napisałem fragment programu, ale nie wiem jak podzielić odczyt z pliku i o co chodzi z rekordami.

#include <stdio.h>
#include <stdlib.h>
#define PIERWSZY "test1.txt"

typedef struct dane
{
    char *imie;
    char *nazwisko;
    char *nr_tel;
}dane;

int main()
{
    int rozmiar;
    int licznik=1;
    dane **ksiazka;
    dane *nowy;
    nowy=(dane*)malloc(sizeof(dane));
    FILE *plik=fopen(PIERWSZY, "r");
    if(!plik)
    {
        printf("Bład wczytywania pliku\n");
        return 0;
    }
    if ((plik = fopen(PIERWSZY, "r")) != NULL)
    {
        while (fgets(nowy, rozmiar, plik) != NULL)
        {
        printf("%s", nowy);
        licznik++;
        }
        fclose(plik);
    }

    return 0;
}
0
  • Ten nowy to ta tablica z zadania? Jeżeli tak to nie określasz rozmiaru tej tablicy,
    tak się alokuje tablice.
    nowy=(dane*)malloc(rozmiar * sizeof(*nowy));
  • Jak masz rozmiar to nigdzie nie przypisujesz mu wartości, tam są jakieś śmieci.
    while (fgets(nowy, rozmiar, plik) != NULL)
  • W ciele while masz jakiś licznik, który zdefiniowałeś na 1 , ciele pętli go inkrementujesz , ale nic z tego nie wynika.

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