Io ho praticamente risolto usando le fgets():
codice:FILE* p; char buff[200]; char* pil; pil=fgets(buff, 200, p); /* Leggo una riga (200 serve tanto per tanto si ferma a \n) */ for(; !feof(p); num++) { buff[strlen(buff)-1] = '\0'; /* siccome lo \n lo tiene dentro la stringa, allora lo tolgo */ if( p==NULL ) break; /* se il file non contiene nulla si ferma */ strcpy(&voce[num].nome, buff);, 200, p); /* copio buff (senza a capo) nella stringa che mi serve */ fgets(buff, 200, p); }
A questo punto nel ciclo for ci sono tante letture quanti voci della struct (nella mia altre 3). Così ogni ciclo prende n righe corrispondente a n campi, fino a quando non arriva alla fine del file. La lettura la faccio alla fine del for così il puntatore si sposta e riesce a riconoscere se il file è finito. Una buona sintesi delle rispostegrazie ancora
![]()

grazie ancora
Rispondi quotando