Originariamente inviato da lmweb.it
io non riesco a capire come mai si sono sicuro mi restituisce sempre l'ultimo elemento. Non esce mai dal while
A me il tuo programmino (sostituendo !EOF con EOF) con il seguente file:

"prova.txt"
codice:
5 4 3 2 1
produce:
codice:
$ ./a.out
5 
4 
3 
2 
1 
1 
1 
1 
1
quindi continua ad infinitum a scrivere 1. Forse tu non riesci a leggere le prime righe del tuo output.

In ogni modo, puoi capire se si è giunti a fine file, controllando il valore restituito dalla fscanf, od utilizzando la feof.