c语言读取二进制文件到变量中,C语言二进制文件读写(Binary I/O)实例

02

17

C语言二进制文件读写(Binary I/O)实例

作者:独木舟 日期:2012-02-17

字体大小: 小 中 大

hn2_sunny.gif

hn2_t_sunny.gif

level3.gif

icon_edit.gificon_del.gif

经常遇到这样的问题。由于二进制文件没有ASCII方式的直观性,所以读写时调试起来比较麻烦。用C语言读写文件的好处之一是比C++的I/O库快(如果做过ACM应该会有这样的体验),此外C语言读写只需要简单的几个库函数,如fopen(),fclose(),fwrite(),fread(),fsanf(),fprintf(),其中fsanf()和fprintf()用于ASCII文件的读写,fwrite()和fread()用于二进制文件的读写。以下是一个小小的实例总结:

typedef struct tagPoint

{

double x,y,z;

}Point;

设有结构体:Point plist[100];

文件:file.dat

file.dat中的数据和结构体数组plist中的数据组织方式一致。

现在我们的任务是:

1、将文件file.dat中的数据读到plist中

2、或者将plist中的数据写到文件file.dat中。

读:

FILE *fp = fopen("file.dat","r");

fread(plist,sizeof(Point),100,fp);

fread的返回值为实际读入的结构体Point的元素个数。

写:

FILE *fp = fopen("file.dat","w");

fwrite(plist,sizeof(Point),100,fp);

fread的返回值为实际写入的结构体Point的元素个数。

简单吧,fread和fwrite的参数完全一样。在实际进行文件读写之前,应该先弄清文件数据的数据结构,这样就可以根据数据结构来设计与文件数据一致的结构体,一次性读入或写入数据。而不需要每次从二进制文件中读写一小块儿数据,从而避免出错,同时也避免多次的循环读写,加快读写速度。

评论: 1 | 引用: 0 | 查看次数: -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值