Ok. Il codice qui sotto è la scrittura su file di una lista di clienti:

main ()
{
FILE *fpointer;
int fine=0;
fpointer=fopen("clienti.dat","ab");

struct {
________char nome[15];
________char cognome[30];
________char sport[20];
________int n_acquisti;
}cliente;

if (fpointer==NULL)
____printf ("Impossibile aprire il file.");
else{
_____while (!fine){
________printf ("Inserite il nome del cliente: ");
________scanf ("%s",&cliente.nome);
________printf ("Inserite il cognome: ");
________scanf ("%s",&cliente.cognome);
________printf ("Inserite lo sport principale del cliente: ");
________scanf ("%s",&cliente.sport);
________printf ("Quanti acquisti ha effettuato? ");
________do{
___________scanf ("%d",&cliente.n_acquisti);
___________if (cliente.n_acquisti<=0)
___________printf ("Valore errato. Reinserire il valore: ");
__________}
________while (cliente.n_acquisti<=0);
________fwrite (&cliente,sizeof(cliente),1,fpointer);
________printf ("Fine? (SI=1, NO=0) ");
________scanf ("%d",&fine);
________}
fclose (fpointer);
}

system("PAUSE");
return 0;
}


Il problema adesso è che se io, dopo aver il mio file "clienti", vorrei inserire il nome del cliente che cerco per far sì che venga letto il file in lettura, venga fatta una ricerca sequenziale sul file che ho scritto e che se trova il nome che cerco uguale a quello scritto nel file me lo modifichi o cancelli, non so come fare. La sola lettura del file e la sua stampa a video mi sono riuscite, ma il problema è proprio nella ricerca di un valore al suo interno per cancellarlo o modificarlo, naturalmente per poi riscrivere l'intero file senza il campo cancellato.
Aiutatemi vi prego.