feof 文件结束
函数原型:
#include <stdio.h>
int feof( FILE *stream );
返回值:如果指定的程序,已经到达文件末尾位置,就返回非零值(真)。
#include <stdio.h>
int main(void) {
FILE *file;
char c;
file = fopen("test.c", "r");
//while ((c = fgetc(file)) != EOF) { //EOF就是 -1
while (!feof(file)) {
c = fgetc(file);
printf("%c", c);
}
return 0;
}
ferror 文件读/写出错
#include <stdio.h>
int main(void) {
FILE *file;
char c;
int ret;
file = fopen("test.c", "r");
fputc('A', file);
if (ferror(file)) {
perror("文件file发生错误");
}
return 0;
}
执行结果:
把 “r” 改为 “r+” 就不会发生错误了。
clearerr 清除文件错误标志
函数原型:
#include <stdio.h>
void clearerr( FILE *stream );
#include <stdio.h>
int main(void) {
FILE *file;
char c;
int ret;
file = fopen("test.c", "r");
fputc('A', file);
if (ferror(file)) {
perror("文件file发生错误");
}
//如果不清除文件错误,以后读写文件时, 即使没有发生错误,ferror仍将返回非零值(认为还有错)
clearerr(file);
c = fgetc(file);
printf("c=%c\n", c);
if (ferror(file)) {
perror("文件file发生错误");
}
return 0;
}
ftell 获取文件指针的当前位置
函数原型:
#include <stdio.h>
long ftell( FILE *stream );
#include <stdio.h>
int main(void) {
FILE *file;
char c;
int ret;
long offset;
file = fopen("test.c", "r");
offset = ftell(file);
printf("当前位置是: %ld\n", offset);
fgetc(file);
offset = ftell(file);
printf("当前位置是: %ld\n", offset);
fclose(file);
return 0;
}