📅  最后修改于: 2023-12-03 15:14:27.186000             🧑  作者: Mango
在 C 语言中读取文件内容通常使用标准 I/O 库中的 fopen()
、fgets()
和 fclose()
函数. fopen()
函数用于打开文件, fgets()
函数用于读取文件内容, fclose()
函数用于关闭文件.
以下是一个简单的例子, 用于打开名为 "example.txt" 的文件并读取其中的内容:
#include <stdio.h>
int main() {
FILE* fp;
char buf[255];
fp = fopen("example.txt", "r");
while (fgets(buf, 255, fp) != NULL) {
printf("%s", buf);
}
fclose(fp);
return 0;
}
在该示例中, 首先通过 fopen()
函数打开 "example.txt" 文件. fopen()
函数的第一个参数是文件名, 第二个参数是指定的模式, r
表示只读模式.
然后使用 while 循环, 通过 fgets()
函数逐行读取文件内容. fgets()
函数的第一个参数是存储读入行的字符数组变量, 第二个参数是指定读入的最大字符数, 第三个参数是 FILE
类型的指针变量, 指定读取的文件.
最后, 通过fclose()
函数关闭文件并清理资源. fclose()
函数的参数是要关闭的文件的指针.
此外, 你还可以使用 fread()
函数和 fseek()
函数来读取和定位文件内容. fread()
函数用于按二进制字符流读取文件内容, fseek()
函数用于定位指针到指定位置.
#include <stdio.h>
int main() {
FILE* fp;
char buf[255];
long file_size;
fp = fopen("example.txt", "rb");
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
fread(buf, 1, file_size, fp);
printf("%s", buf);
fclose(fp);
return 0;
}
在该示例中, 首先使用 fopen()
函数打开 "example.txt" 文件, 并指定打开模式为二进制读取模式 "rb".
然后通过 fseek()
函数将指针定位到文件末尾, 通过 ftell()
函数获取当前位置指针相对于文件起始位置的偏移量, 并再次通过 fseek()
函数将指针定位到文件起始位置.
接下来使用 fread()
函数将文件内容读入字符数组, fread()
函数的第一个参数是字符数组的指针, 第二个参数是每个元素的大小, 第三个参数是要读取的元素数量, 第四个参数是文件指针.
最后, 通过 fclose()
函数关闭文件并清理资源.
以上是在 C 语言中读取文件内容的两种常见方法.