📅  最后修改于: 2023-12-03 15:00:51.103000             🧑  作者: Mango
在 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()
可以用于读取任何类型的数据,包括结构体和数组。但是,在处理此类数据时要格外小心,必须确保正确计算元素大小和数量。