首页 > 编程笔记

C语言fread():从文件中读取一个数据块

fread() 是 C语言的一个标准库函数,定义在<stdio.h>头文件中。

fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。

fread() 函数的原型如下:

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

参数


理论上,fread() 函数每次从文件中读取size*count个字节的数据。

返回值

返回实际读取的块数,也即 count。如果实际读取的块数小于 count,则可能发生了错误,或者是文件位置指针到了文件末尾。

【实例】下面是 C语言 fread() 函数的一个示例程序,从一个名为 "input.bin" 的二进制文件中读取一组整数,并将它们打印到控制台。
#include <stdio.h>

int main() {
    FILE *file = fopen("input.bin", "rb");
    if (file == NULL) {
        printf("无法打开文件!\n");
        return 1;
    }

    int numbers[5];
    size_t result = fread(numbers, sizeof(int), 5, file);
    if (result != 5) {
        printf("读取失败!\n");
        fclose(file);
        return 1;
    }

    for (int i = 0; i < 5; i++) {
        printf("读取的整数: %d\n", numbers[i]);
    }

    fclose(file);
    return 0;
}
在这个示例中,首先尝试以二进制读取模式打开名为 "input.bin" 的文件,然后使用 fread() 从文件中读取 5 个整数并将它们存储在数组 numbers 数组中。

推荐阅读