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的功能,用于存储读取到的数据。 |
size | fread()函数每次读取的数据项的大小,单位是字节。 |
count | fread()函数读取成功的数据项个数。 |
fp | FILE对象,指针指向所要读取的文件流。 |
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);
}
免责声明:内容仅供参考,不保证正确性!