ferror函数的用法
时间: 2023-07-19 20:38:26 浏览: 236
Excel中IFERROR函数的使用方法1
`ferror`函数用于检测文件流上的错误标志。如果文件流上已经设置了错误标志,则`ferror`函数返回非零值,否则返回零。
`ferror`函数的原型如下:
```c
int ferror(FILE *stream);
```
其中,`stream`参数是一个指向`FILE`结构体的指针,它指向要检测错误标志的文件流。
`ferror`函数一般与`clearerr`函数一起使用。`clearerr`函数用于清除文件流上的错误标志和文件结束标志。在调用`ferror`函数之前,通常应该先调用`clearerr`函数,以确保检测到的错误标志是最近一次操作的结果,而不是之前操作的遗留结果。
下面是一个使用`ferror`函数检测文件写入错误的示例代码:
```c
#include <stdio.h>
int main() {
FILE *fp;
int ret;
fp = fopen("test.txt", "w");
if (fp == NULL) {
printf("Failed to open file!\n");
return 1;
}
ret = fputc('A', fp);
if (ret == EOF) {
printf("Failed to write file!\n");
if (ferror(fp)) {
printf("Error: Write error!\n");
}
return 2;
}
fclose(fp);
printf("Write file success!\n");
return 0;
}
```
在示例代码中,首先使用`fopen`函数打开一个文件,如果打开失败,则打印错误信息并退出程序。接着使用`fputc`向文件中写入一个字符,如果写入失败,则通过`ferror`函数检测错误标志,如果检测到错误标志,则打印“Error: Write error!”的错误信息。最后使用`fclose`关闭文件。
需要注意的是,`ferror`函数只能检测上一次文件操作的错误标志,如果对同一个文件流进行多次操作,应该在每次操作之前调用`clearerr`函数来清除错误标志。
阅读全文