首页 > 编程笔记 > C语言笔记 阅读:2863

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

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

函数原型和语法

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

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

函数作用

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

函数使用示例

下面是一个简单的使用 fread() 函数的示例程序。该程序将从文件中读取整型数据,并将它们打印到控制台上。
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. FILE *fp;
  6. int buffer[100];
  7. int count, i;
  8.  
  9. fp = fopen("data.bin", "rb");
  10.  
  11. if(fp == NULL)
  12. {
  13. printf("Failed to open file\n");
  14. return 1;
  15. }
  16.  
  17. count = fread(buffer, sizeof(int), 100, fp);
  18.  
  19. printf("Read %d integers:\n", count);
  20.  
  21. for(i = 0; i < count; i++)
  22. {
  23. printf("%d\n", buffer[i]);
  24. }
  25.  
  26. fclose(fp);
  27.  
  28. return 0;
  29. }
在上面的示例程序中,首先打开一个名为“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() 函数的用法。

相关文章