1、简述
要读取文本文件,需要按照以下步骤操作:
- 首先,使用该函数打开文本文件
fopen()
。 - 其次,使用
fgets()
或fgetc()
函数从文件中读取文本。 - 第三,使用函数关闭文件
fclose()
。
2、每次从文件中读取一个字符
要从文本文件中一次读取一个字符,可以使用 fgetc() 函数。
以下程序每次从 readme.txt 文件中读取一个字符,并将文件内容显示到输出中:
#include <stdio.h>
int main()
{
char *filename = "readme.txt";
FILE *fp = fopen(filename, "r");
if (fp == NULL)
{
printf("Error: could not open file %s", filename);
return 1;
}
// read one character at a time and
// display it to the output
char ch;
while ((ch = fgetc(fp)) != EOF)
putchar(ch);
// close the file
fclose(fp);
return 0;
}
3、逐行读取文本文件
要从文本文件中读取一行,可以使用 fgets() 函数:
char * fgets ( char *str, int num, FILE *stream );
fgets()
函数从stream
读取字符并将其存储到中str
。
如果出现以下情况,该fgets()
函数将停止读取:
- 已读取 num-1 个字符
- 已到达换行符或文件结束字符。
请注意,该fgets()
函数还包括换行符str
。
下面的示例显示如何使用 fgets() 函数逐行读取文本文件并将文本显示到输出:
#include <stdio.h>
int main()
{
char *filename = "readme.txt";
FILE *fp = fopen(filename, "r");
if (fp == NULL)
{
printf("Error: could not open file %s", filename);
return 1;
}
// reading line by line, max 256 bytes
const unsigned MAX_LENGTH = 256;
char buffer[MAX_LENGTH];
while (fgets(buffer, MAX_LENGTH, fp))
printf("%s", buffer);
// close the file
fclose(fp);
return 0;
}