C语言fread()函数读取二进制

fread()函数读取二进制

C语言stdio.h的头文件中,fread()函数可以用于从FILE对象指定的文件流中以二进制的数据形式读取数据进内存中,不管文件流中的数据的表现形式是否为二进制。fread()函数的语法如下。

fread()语法

size_t fread(void *ptr, size_t size, size_t count, FILE *fp);

fread()参数详解

参数描述
ptr指向计算机内存的指针,类似于fgets()中的缓冲区buf的功能,用于存储读取到的数据。
sizefread()函数每次读取的数据项的大小,单位是字节。
countfread()函数读取成功的数据项个数。
fpFILE对象,指针指向所要读取的文件流。

fread()返回值

size_t类型,值为成功读取到的数据项的个数,如果在读取数据的过程中,已经读取到了文件的末尾,或者已经读取了语法中count指定的数据项个数,那么返回值会小于count。

fread()读取二进制实例代码

运行如下代码读取二进制数据之前,可以在指定位置创建一个txt的文件,里头编辑一些内容,用于fread()读取。如下实例中,鄙人在E盘创建了一个fread.txt的文件,并输入文本内容:笨鸟工具,x1y1z1.com

重点提示:虽然fread()函数读取数据时是以二进制的形式读取到内存中,但是当使用printf()将读取到的进行输出时,并不会是二进制的形式!

提示:如果printf()输出的内容有乱码,那么可以将txt文件的编码格式修改成与C语言文件中的编码一致就可以了,具体可参考当前专栏的文章:VScode C语言printf输出中文乱码解决方法

#include <stdio.h>

int main() {

    FILE *fp = fopen("E:\\fread.txt","rb");
    char binary[50];
    size_t num = fread(binary, sizeof(char), 50, fp);
    printf("%d\n",num);
    printf("%s\n",binary);
    fclose(fp);

}

免责声明:内容仅供参考,不保证正确性!


全栈后端 / C语言教程 :


















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.