首页 > 编程笔记

C语言fread()函数:从文件读取数据

C语言中的 fread() 函数是一个标准库函数,用于从文件中读取数据。在本文中,我们将详细介绍 fread() 函数的用法、参数和返回值,并提供一些示例代码来帮助读者更好地理解该函数。

函数原型和语法

fread() 函数的函数原型和语法如下所示:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
该函数的参数解释如下:

函数返回一个 size_t 类型的值,表示成功读取的数据项数目。

函数作用

fread() 函数可以从文件中读取二进制数据。它在读取数据时,会从文件流中读取 count 个数据项,每个数据项占用 size 个字节。它会将这些数据项存储到由 ptr 指向的缓冲区中,并返回成功读取的数据项数目。

函数使用示例

下面是一个简单的使用 fread() 函数的示例程序。该程序将从文件中读取整型数据,并将它们打印到控制台上。
#include <stdio.h>

int main()
{
    FILE *fp;
    int buffer[100];
    int count, i;

    fp = fopen("data.bin", "rb");

    if(fp == NULL)
    {
        printf("Failed to open file\n");
        return 1;
    }

    count = fread(buffer, sizeof(int), 100, fp);

    printf("Read %d integers:\n", count);

    for(i = 0; i < count; i++)
    {
        printf("%d\n", buffer[i]);
    }

    fclose(fp);

    return 0;
}
在上面的示例程序中,首先打开一个名为“data.bin”的文件,以二进制读取方式打开。如果文件打开失败,则会打印一条错误消息并返回 1。接下来,程序将从文件中读取 100 个整型数据,并将它们存储在 buffer 数组中。读取完数据后,程序打印出读取的数据项数目,并将每个整数打印到控制台上。最后,程序关闭文件并返回 0。

假设“data.bin”文件包含以下整数序列:1, 2, 3, 4, 5, 6, 7, 8, 9, 10。运行上面的程序将输出以下结果:

Read 10 integers:
1
2
3
4
5
6
7
8
9
10

可以看到,程序成功从文件中读取了 10 个整型数据,并将它们存储在 buffer 数组中。然后,程序将这些整数打印到控制台上。

注意事项

在使用 fread() 函数时,需要注意以下几点:

总结

本文介绍了 C语言中的 fread() 函数的用法、参数和返回值。该函数可以从文件中读取二进制数据,并将数据存储到指定的缓冲区中。在使用该函数时,需要注意缓冲区的大小、数据类型的字节对齐、文件是否已经打开等细节问题。本文提供了一个简单的示例程序,帮助读者更好地理解 fread() 函数的用法。

推荐阅读