本文共 563 字,大约阅读时间需要 1 分钟。
本章的多数函数(fgets()、gets()、putc()、ungetc()、fread()等)当调用不成功时都返回EOF,EOF的值为0,它既用于报告文件结束,也用于报告错误情形下的返回。因此,为了区分究竟是错误返回还是文件结束返回,就需要调用ferror()函数来确定是否存在错误,调用feof()函数检查是否遇到文件结束。
每一个流对象内部有两个指示器:一个为错误指示器,当读写文件出错时该指示器被设置;另一个为文件结束指示器,当遇到文件尾时该指示器被设置。函数ferror()和feof()分别检查这两个指示器。#includeint ferror (FILE *stream);int feof (FILE *stream);void clearerr(FILE *stream);
函数ferror()返回0当且仅当流stream的错误指示器被设置。
feof()返回0当且仅当流stream的文件结束条件指示器被设置。函数clearerr()用于清除这两个指示器。对流进行操作的函数除了设置与流相连的错误指示器外,也设置全局变量errno。例2-7 为了免除每次调用I/O函数时检查返回值的烦琐,可以将这些检查包装在一个函数中。如程序2-7所示。转载地址:http://pqtil.baihongyu.com/