首页 百科知识 二进制文件的读写

二进制文件的读写

时间:2023-10-16 百科知识 版权反馈
【摘要】:二进制文件是以“二进制数据块”为单位进行数据的读写操作。所谓“二进制数据块”是指在内存中连续存放的具有若干相同长度的二进制数据,最常用的如结构体数组类型,因为结构体数组成员具有相同的长度,而且结构体可以存放多种不同的数据类型。程序中定义了两个结构体数组stu1和stu2,以读写方式新建并打开二进制文件stu.bin。

8.3 二进制文件的读写

二进制文件是以“二进制数据块”为单位进行数据的读写操作。所谓“二进制数据块”是指在内存中连续存放的具有若干相同长度的二进制数据,最常用的如结构体数组类型,因为结构体数组成员具有相同的长度,而且结构体可以存放多种不同的数据类型。

8.3.1 数据块读出函数fread

fread函数是从指定的二进制文件中输出数据到内存单元中,格式如下:

fread(buf,size,count,文件指针);

buf是输入数据在内存中存放的起始地址,也就是数据块指针;size是每个数据块的字节数;count用来指定每次读取的数据块的个数。

函数功能是在文件指针指定的文件中读取count个数据块(每个数据块为size个字节),存放到buf指定的内存单元地址中去。函数调用成功时,返回实际读出的数据块个数;出错或遇到文件末尾时,返回0值。

8.3.2 数据块写入函数fw ri te

fwrite函数是从内存输出数据到指定的二进制文件中,一般使用格式如下:

fwrite(buf,size,count,文件指针);

buf是输出数据在内存中存放的起始地址;其他各参数的含义同fwrite函数。函数功能是从以buf为首地址的内存中取出count个数据块(每个数据块为size个字节),写入到“文件指针”指定的文件中。函数调用成功时,该函数返回实际写入的数据块的个数;出错时返回0值。

【例8.4】使用fwrite和fread函数对stu.bin文件进行写入和读取操作。

代码如下:

img321

运行结果如图8-4所示。

img322

图8-4

程序文件夹中已创建了二进制文件stu.bin。

分析:

程序中定义了两个结构体数组stu1和stu2,以读写方式新建并打开二进制文件stu.bin。使用循环把结构体数组stu1中的数据写入文件stu.bin中,写数据结束后文件指针指向文件的结尾处,使用了rewind函数重置文件指针读写位置到文件开头处,再使用循环语句把文件stu.bin中的数据写入结构体数组stu2中并在屏幕上进行输出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈