ho creato questa funzione ma nn so perche nn funzica sapete trovare l'errore?
void cerca(){
int find=0; //DICHIARO LE VARIABILI DI RICERCA DI RICERCA
char stringa[LUNG_S],com; //DICHIARO LA STRINGA DI RICERCA
str_atleti atleta; //DICHIARO LA STRUTTURA DATI PER LA FUNZIONE
FILE *idS,*idD; //DICHIARO IL PUNTATORE A FILE PER LA FUNZIONE
do{
clrscr();
header("Ricerca atleta");
printf("\n\t%c Nome o congnome : ",16); //ACQUISISCO LA STRINGA DA CERCARE
gets(stringa);fflush(stdin);
printf("\n\t-- Menu --\n\tA - Cancella\n\tB - Modifica");
com=getche();
}while(com != 'a' && com != 'b');
idS=fopen(NOME_FILE,LEGGI); //APRO IL FILE SORGENTE IN LETTURA
idD=fopen(NOME_TMP,CREA); //APRO IL FILE DESTINATARIO IN SCRITTURA
checkF(idS,ERR1,1); //CONTROLLO L'APERTURA DEL FILE
checkF(idD,ERR1,1); //CONTROLLO L'APERTURA DEL FILE
if(com=='a')
while(!feof(idS))
{
fread(&atleta,sizeof(str_atleti),1,idS);
if(strcmp(stringa,atleta.n)!=0 && strcmp(stringa,atleta.c)!=0)
fwrite(&atleta,sizeof(str_atleti),1,idD);
else
find=1;
}
else
while(!feof(idS))
{
fread(&atleta,sizeof(str_atleti),1,idS);
if(strcmp(stringa,atleta.n)==0 || strcmp(stringa,atleta.c)==0)
{
find=1;
printf("\n\tNome : "); //CARICO I DATI IN MEMORIA
gets(atleta.n);fflush(stdin);
printf("\tCognome : ");
gets(atleta.c);fflush(stdin);
printf("\tGiorno di nascita : ");
scanf("%d",&atleta.dt.gg);
printf("\tMese di nascita : ");
scanf("%d",&atleta.dt.mm);
printf("\tAnno di nascita : ");
scanf("%d",&atleta.dt.aa);
}
fwrite(&atleta,sizeof(str_atleti),1,idD);
}
fclose(idS); //CHIUDO IL FILE SORGENTE
fclose(idD); //CHIUDO IL FILE DESTINATARIO
remove(NOME_FILE); //ELIMINO IL FILE SORGENTE
rename(NOME_TMP,NOME_FILE); //RINOMINO IL FILE DESTINATARIO
}