while(!feof(fp)){}
feof 的判斷 應當放在讀語句之後,越靠近越好。
妳現在的判斷實際上是在輸出語句之後。就是說,fscanf(fp , "%ld。。。) 這句讀到了 EOF, 妳還執行下面的輸出,到下壹輪,才檢查 feof 。所以多輸出了最後壹項。
在 fscanf(fp ..) 後,加:
if (feof(fp)) break; 跳出while 就可以了。