salve ragazzi sono nuovo del forum, ho un problema con la lettura di un file e memorizzare i dati in una struct
il file contiene una lista di dati di persone del tipo
MARIO
ROSSI
27/11/95
ROMA
M
FRANCO
ADDANTE
25/06/1987
MILANO
M
.
.
.

questa è la struct..

codice:
typedef struct person_struct{
    char surname[MAX_SURNAME];            /**< Stringa contenente il cognome. */
    char name[MAX_NAME];                /**< Stringa contenente il nome. */
    char birth_date[BIRTH_DATE_LEN];    /**< Stringa contenente la data di nascita. */
    char birth_place[MAX_BIRTH_PLACE];    /**< Stringa contenente il luogo di nascita. */
    char sex;                            /**< Carattere che indica il sesso. */
    char cf[CF_LEN];                    /**< Stringa contenente il codice fiscale. */
}person;

questa è la mia funzione chiamata che riceve il file e ne legge 5 righe..il problema sta nel fatto che al primo giro riesco a leggere i dati e momorizzarli nella struct ma quando chiamo di nuovo la funzione e quindi accedo di nuovo al file non mi parte dalla sesta riga ovvero quella contenente altri dati anagrafici di persone.. ho provato a usare un puntatore di posizione ma con scarsi risultati.. spero voi riusciate a risolvere il problema.. grazie in anticipo..


codice:
person* read_person(FILE* people_file){

person struct_person; //struct del tipo person
fpos_t* pos;  //indicatore di posizione


    if(people_file == NULL){
        printf("Impossibile aprire il file.\n");
        exit(1);
    }
     
        fsetpos(people_file,pos);
     
        fgets(struct_person.surname, MAX_SURNAME, people_file);
      
        fgets(struct_person.name, MAX_NAME, people_file);
      
        fgets(struct_person.birth_date, BIRTH_DATE_LEN, people_file);

        fgets(struct_person.birth_place, MAX_BIRTH_PLACE, people_file);
      
        struct_person.sex = fgetc(people_file);
       
    
        fgetpos (people_file, pos);
        person_ptr=&struct_person;

return person_ptr;
}