文件结束的判断:
1.fget()读取结束后返回EOF。
#include<stdio.h>
#include<stdlib.h>
int main() {
FILE* fp = fopen("test2.txt", "r");
if(fp == NULL)
{
perror(fp);
return 0;
}
while (fgetc(fp)!=EOF) {
;
}
fclose(fp);
return 0;
}
2.fgets()读取结束时返回NULL。
#include<stdio.h>
#include<stdlib.h>
int main() {
FILE* fp = fopen("test2.txt", "r");
char s[100];
if(fp == NULL)
{
perror(fp);
return 0;
}
for (i = 0; fgets(str[i], 1, fp) != NULL; i++) {
;
}
fclose(fp);
return 0;
}
3.二进制文件可以用fread()进行读取,若读取失败返回0。
#include<stdio.h>
#include<stdlib.h>
int main() {
FILE* fp = fopen("test2.txt", "r");
char s[100];
if(fp == NULL)
{
perror(fp);
return 0;
}
int i = 0;
while (fread(&s[i++], sizeof(char[0]), 1, fp)) {
;
}
fclose(fp);
return 0;
}
feof()函数:
int feof( FILE *stream )
1.当文件读取结束时, 若是遇到文件尾结束,则返回1,否则返回0.
2.在文件读取过程中不能用feof函数的返回值来判断是否读取到文件尾。
3.当文件读取结束的时候,可以判断是读取失败结束,读取道文件尾结束。