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;
}