Salve a tutti, questo è il codice:
int cancella(){
FILE*f;
FILE*s;
char nome[15], cognome[15], cognomeM[15], nomeM[15], telefonoM[11];
printf("INSERISCI COGNOME: ");
scanf("%s",cognome);
printf("INSERISCI NOME: ");
scanf("%s",nome);
f=fopen("rubrica.txt","r");
s=fopen("temp.txt","a");
while(!feof(f)){
fscanf(f,"%s",cognomeM);
fscanf(f,"%s",nomeM);
fscanf(f,"%s",telefonoM);
if((strcmp(cognomeM,cognome)==0)&(strcmp(nomeM,nom e)==0))
printf("Contatto cancellato!");
else{
fprintf(s,"%s %s %s\n",cognomeM,nomeM,telefonoM);
}
}
fclose(f);
fclose(s);
remove("C:\\....\\rubrica.txt");
rename("C:\\....\\temp.txt","C:\\....\\rubrica.txt ");
return 0;
}
Praticamente se cancello l'ultima riga mi riporta la printf Contatto cancellato! tante volte quante sono le righe sopra quella cancellata.
Se invece invece cancello una delle righe dalla prima alla penultima mi ricopia l'ultima due volte!
Sto uscendo pazzo a capire qual'è il problema.
Sapreste aiutarmi?