2008年11月8日星期六

初等的Bug(3)

文件中是int, char[4]的结构数组,想把int取出来
fread(&i, 4, 1, f);
fseek(f, 4, SEEK_CUR);
直到feof(f),却发现程序永久性地被挂起了!
查手册才明白:
Using fseek() clears the EOF flag associated with that stream.
终止条件永远不会满足
正确的做法是fread之后立即判断feof

没有评论: