📜  c读取文件内容——C编程语言(1)

📅  最后修改于: 2023-12-03 15:14:27.186000             🧑  作者: Mango

C 读取文件内容

在 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 语言中读取文件内容的两种常见方法.