Buona pasquetta a tutti
poco fa mi sono imbattuto nel seguente dilemma, e non trovando tantissime risposte volevo chiedervi qualche consiglio. vi spiego il problema:
creo un nuovo file in modalità write con inserimenti " numerati "
per intenderci, il file riceve in ingresso i dati in questa maniera :
codice:
printf("\nCompila i seguenti campi\n"); do{
printf("\nInserimento numero %d\n" ,i);
printf("Nome:\n");
scanf("%s" ,&l.nome);
printf("Cognome:\n");
scanf("%s" ,&l.cognome);
printf("Codice:\n");
scanf("%d" ,&l.codice);
fprintf(pf, "%d\n%s %s\n%d\n\n" , i, l.nome, l.cognome, l.codice);
printf("Inserire -1 per terminare, qualunque altro numero intero per continuare\n");
scanf("%d" ,&spia);
if(spia > -1)
i++
}while(spia != -1);
cls=fclose(pf);
if(cls != 0)
printf("\nErrore nella chiusura del file\n");
Ora il file dovrebbe essere scritto in questa maniera ( per facilità di lettura utilizzerò la tag del code 
codice:
1
Alessio bombolone
234321
2
Angelo Fonfofofo
3432324
e così via...
la mia domanda è la seguente:
se io volessi leggere solo il numero dell'inserimento, ossia il numero che si trova sopra ogni nome (1 , 2 nell'esempio), in modo da utilizzarlo come indice-grandezza massima di un array. come potrei fare?
io avevo cominciato a pensare ad un piccolo algoritmo in via teorica, senza codice, ma su alcuni passi sono ancora dubbioso.
questo è stato il mio ragionamento :
devo ricercare il %d maggiore, anche se ricevo 2 %d diversi ( il numero più lungo, sotto il nome della persona) posso usare l'operatore modulo per distinguere su quale andrò a lavorare in quanto il codice della persona è sempre un numero pari, il numero d'inserimento è sempre dispari.
in particolare qui è sorto il primo dubbio: leggendo il file riga per riga, sarei obbligato a leggere anche i %s. o c'è un modo anche per scandire la lettura delle righe, leggendo solo i dati che a me interessano di più?
premesso è un esercizio, devo utilizzare il file e stavo pensando di indicizzare un array per poi favorire la cancellazione e la gestione degli elementi per indice.
Non è possibile utilizzare liste ( non è una mia scelta, non sono contemplate nella consegna )
Nel caso non fossi stato chiaro \o non poco pretenzioso np e grazie lo stesso 
---------------Aggiornamento ------------------
Piccolo(credo) passetto avanti( forse sbagliato)
per ricavarmi l'indice e avere i successivi inserimenti in modalità append di modifica del file utilizzo, per ora il seguente codice )
codice:
int grandezza_array(char nomefile[]){
FILE *pf;
int i=0;
Persona l={"","", 123456};
pf=fopen(nomefile, "r");
if(pf == NULL)
printf("\n Errore nell'apertura del file\n");
while(!feof(pf) )
{
fscanf(pf,"%d\n%s %s\n%d\n\n", &i, &l.nome, &l.cognome, &l.codice);
}
ind=i;
printf("%d" ,ind);
return i;
}
questa funzione ritorna i, e salva in ind ( una variabile che ho messo come globale ) il numero dell'ultimo inserimento, il resto dei dati ( nome, cognome etc, tranne la I ) dovrebbero perdersi alla fine della funzione
fine aggiornamento