首先打开需要读的文件fopen函数,使用给定的模式 mode 打开 filename 所指向的文件。
模式不限于“a”、“w”、“r”、“a+”等,其解释不作赘述,这里只需要读文件内容,所以用r
。
FILE *fopen(const char *filename, const char *mode)
然后判断文件是否为空,为空则返回信息并退出.exe,不为空就进入while中读取文件的内容了。
本文用fgets读取文件中内容,从指定的流文件读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时就停止,每读完一个换行,则在窗口中输出文件里的内容。
char *fgets(char *str, int n, FILE *stream)
最后用到feof函数判断是否读到文件尾,如果是,则退出while循环,结束程序。
在C语言中,或更精确地说成C标准函式库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
读取文件中的内容
#include <stdio.h>
#include <stdlib.h>
#define N 65535
int main(void)
{
FILE* fp;
fp = fopen("SaveWindows2023_9_8_16-39-49.TXT", "r");
char str[N] = { 0 };
char c;
int numObjOut =0;
if (fp == NULL)
{
puts("打开文件失败\n");
exit(0);
}
while (fp != NULL)
{
fgets(str,N,fp);
if (feof(fp))
{
break;
}
printf("%s\n", str);
}
fclose(fp);
return 0;
}