📜  fread in - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:00:51.103000             🧑  作者: Mango

fread in - C 编程语言

在 C 语言中,fread() 函数用于读取二进制文件中的数据。它允许您指定要读取的元素的数量、每个元素的大小和读取的文件。fread() 可以一次读取多个元素,也可以在循环中读取文件的部分内容。

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

参数说明:

  • ptr:指向数据缓冲区的指针。
  • size:每个元素的大小。
  • count:元素的数量。
  • stream:文件指针。

返回值:返回实际读取的元素数量(而不是字节数),如果出现错误或文件结束,则返回的值可能会小于请求的数量。

示例

以下是使用 fread() 函数读取文件的示例:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char buffer[100];
    fp = fopen("file.txt", "rb");
    if (fp == NULL) {
        perror("Error opening file");
        exit(1);
    }
    fread(buffer, 10, 1, fp);
    printf("%s", buffer);
    fclose(fp);
    return 0;
}

在上面的示例中,我们打开了名为 file.txt 的二进制文件,并尝试读取缓冲区的前 10 个字节。

注意事项
  • fread() 函数仅用于二进制文件。对于文本文件,使用 fgets()fscanf() 函数。
  • fread() 读取时不会在缓冲区中添加字符串结束符。因此,在使用 printf() 输出缓冲区内容时需要手动添加结束符。
  • fread() 返回的值应该始终与请求的元素数量相同。如果不同,则意味着可能发生错误,这意味着文件已结束或文件指针末尾已达到文件。
  • fread() 可以用于读取任何类型的数据,包括结构体和数组。但是,在处理此类数据时要格外小心,必须确保正确计算元素大小和数量。