13.3 为什么这些代码
while(!feof(infp)) {
fgets(buf, MAXLINE, infp);
fputs(buf, outfp);
}
把最后一行复制了两遍?
在 C 语言中, 只有输入例程试图读并失败以后才能得到文件结束符。
换言之, C 的 I/O 和 Pascal 的不一样。通常你只需要检查输入例程的返回值,
例如, fgets() 在遇到文件结束符的时候返回 NULL。实际上, 在任何情况下,
都完全没有必要使用 feof()。
参考资料: [K&R2, Sec. 7.6 p. 164]; [ISO, Sec. 7.9.3, Sec. 7.9.7.1,
Sec. 7.9.10.2]; [H&S, Sec. 15.14 p. 382]。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)