介绍
在C语言中,读取txt文件的操作是非常常见的。读取文件可以让你获取文件的内容,你可以将文件内容用于程序中的各种计算、操作等等。这篇文章将会详细介绍C语言如何读取txt文件内容。
打开文件
打开文件是读取文件的第一步。在C语言中,可以使用fopen函数打开文件,并返回一个文件指针。
FILE *fopen(const char *filename, const char *mode);
fopen函数需要两个参数,一个是要读取的文件名,另一个是打开文件的模式:
r: 打开一个文本文件,以只读方式。
w: 打开一个文本文件,用写方式,如果文件已存在则清除文件内容。
a: 打开一个文本文件,用写方式打开,如果文件已存在则在文件末尾添加数据。
r+: 打开一个文本文件,用读写方式。
w+: 打开一个文本文件,用读写方式,如果文件已存在则清除文件内容。
a+: 打开一个文本文件,用读写方式打开,如果文件已存在则在文件末尾添加数据。
下面是一个例子,打开一个名为“example.txt”的文件:
FILE *fp;
fp = fopen("example.txt", "r");
读取文件内容
打开文件后,可以使用fscanf函数、fgets函数或fread函数来读取文件内容。
使用fscanf函数读取
对于简单的纯文本文件,可以使用fscanf函数来读取。fscanf函数按照指定的格式进行读取,并将读取到的数据放入指定的变量中。
int fscanf(FILE *stream, const char *format, ...);
fscanf函数需要三个参数:
stream:一个文件指针,指向要读取的文件。
format:一个字符串,指定读取的格式。
...:要读取的变量列表。
下面是一个例子,从文件中读取两个整数并将它们相加:
FILE *fp;
int num1, num2, sum;
fp = fopen("example.txt", "r");
fscanf(fp, "%d%d", &num1, &num2);
sum = num1 + num2;
fclose(fp);
使用fgets函数读取
如果文件中有多个数据,或者需要一次读取一行数据,则可以使用fgets函数。
char *fgets(char *str, int n, FILE *stream);
fgets函数需要三个参数:
str:一个字符数组,用于存储读取到的数据。
n:一个整数,指定要读取的字符数。
stream:一个文件指针,指向要读取的文件。
下面是一个例子,从文件中读取每一行的数据并输出:
FILE *fp;
char line[100];
fp = fopen("example.txt", "r");
while (fgets(line, 100, fp)) {
printf("%s", line);
}
fclose(fp);
使用fread函数读取
对于二进制文件,可以使用fread函数来读取。fread函数按照指定的格式进行读取,并将读取到的数据放入指定的变量中。
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
fread函数需要四个参数:
ptr:一个指针,指向要读取的数据的存储位置。
size:一个整数,指定每次读取的字节数。
count:一个整数,指定要读取的项目数。
stream:一个文件指针,指向要读取的文件。
下面是一个例子,从文件中读取整个文件的内容:
FILE *fp;
long lSize;
char *buffer;
size_t result;
fp = fopen("example.bin", "rb");
fseek(fp, 0, SEEK_END);
lSize = ftell(fp);
rewind(fp);
buffer = (char*)malloc(sizeof(char)*lSize);
result = fread(buffer, 1, lSize, fp);
fclose(fp);
关闭文件
完成读取操作后,需要使用fclose函数来关闭文件。
int fclose(FILE *stream);
fclose函数需要一个文件指针作为参数:
stream:一个文件指针,指向要关闭的文件。
下面是一个例子,打开一个文件并读取其中的数据,然后关闭文件:
FILE *fp;
int num;
fp = fopen("example.txt", "r");
fscanf(fp, "%d", &num);
fclose(fp);
完整例子
下面是一个完整的例子,读取一个名为“example.txt”的文件并输出其中的每一行内容:
#include <stdio.h>
int main() {
FILE *fp;
char line[100];
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("File open error!");
return 1;
}
while (fgets(line, 100, fp)) {
printf("%s", line);
}
fclose(fp);
return 0;
}
总结
在C语言中,读取txt文件的操作是非常常见的。本文介绍了C语言如何打开文件、读取文件内容和关闭文件。您可以根据自己的需求选择适合自己的读取方式,并且可以自己尝试编写代码进行练习。