aaa 234 444 bbb
123 kkk 9 00 00000 0000
ccc 34
如果最後沒有空行,即沒有\n,讀到ccc 34這行時,fgets遇到了EOF,結束,str="ccc 34\0"; 如果最後有空行;讀到ccc 34這行時,fgets遇到了new line,str="ccc 34\n\0",此時文件未返回EOF,再次fgets時,遇到EOF,fgets返回NULL,str的內容沒有變,因此用fgets讀時判斷是否該結束最好如此:
while(fgets(...)) {
...
}
而不要用
while(!feof()) {
fgets();
...
}