riporto quello che ti interessa:
PROBLEMI CLASSICI
MI SCRIVE UN RECORD IN PIU'
se si fa un output all'interno di un ciclo con controllo feof()
feof restituira' VERO solo DOPO aver letto almeno una volta oltre al
file.. questo vuol dire che se stampate una variabile,o una struttura
all'interno di questo ciclo stamperete 2 volte l'ultima.
SOLUZIONE mettere un if feof(*FILE)break; appena dopo la prima lettura
che puo' generare errore.
ESEMPIO:
codice:
while(!feof(input)){
fread(&a,1,sizeof(char),input);
if feof(input)break;
putchar(a);
};