C语言fread():从文件中读取一个数据块
fread() 是 C语言的一个标准库函数,定义在
fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。
fread() 函数的原型如下:
理论上,fread() 函数每次从文件中读取
【实例】下面是 C语言 fread() 函数的一个示例程序,从一个名为 "input.bin" 的二进制文件中读取一组整数,并将它们打印到控制台。
<stdio.h>
头文件中。fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。
fread() 函数的原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
参数
- ptr:指向一块内存空间,可以是数组、变量等,用来存放成功读取的数据。
- size:表示每个数据块的字节数。
- count:表示要读写的数据块的块数。
- 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 数组中。