fread() 函数用于从文件中读取二进制或结构化数据到缓冲区,具体步骤如下:打开文件流分配缓冲区调用 fread() 函数指定缓冲区、元素大小、元素数量和文件流检查返回值是否为 0(发生错误)
C 语言 fread() 函数的使用方法
fread() 函数用于从一个流中读取数据到一个缓冲区。它通常被用于从文件中读取二进制数据或结构化数据。
函数原型:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
参数:
- ptr:指向缓冲区的指针,用于存储从流中读取的数据。
- size:每个元素的大小(以字节为单位)。
- nmemb:要读取的元素数量。
- stream:指向文件流的 FILE 结构指针。
返回值:
- 成功读取的元素数量(如果未发生错误)。
- 如果遇到错误,则返回 0。
使用方法:
- 打开文件流。
- 分配一个足够大的缓冲区来存储读取的数据。
- 调用 fread() 函数,指定缓冲区、每个元素的大小、要读取的元素数量以及文件流。
- 检查 fread() 函数的返回值以查看是否成功读取了数据。如果返回值为 0,则发生了错误。
示例代码:
#include <stdio.h>
int main() {
FILE *fp;
int buffer[100];
int size, nmemb;
fp = fopen("data.bin", "rb");
if (fp == NULL) {
perror("Error opening file");
return 1;
}
// 读取 100 个整数
size = sizeof(int);
nmemb = 100;
if (fread(buffer, size, nmemb, fp) != nmemb) {
perror("Error reading data");
fclose(fp);
return 1;
}
// 处理读取的数据
for (int i = 0; i </stdio.h>