fwrite(&st【i】,sizeof(struct student),1,fp)什么意思啊?拜托

如题所述

把地址
&st[i]
中的数据 长度为sizeof(struct student)的数据 写到打开的文件fp中
简单点说 就是把st数组的第i个数据 写到文件里面(二进制方式)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-30
一定是程序前面有结构定义(假设元素个数是10的情况):
struct student { .... } st[10];
然后又有用fp打开写的文件且用的是"wb+"或"wb"这样的属性打开的
然后循环将数组中每个结构写入文件,如:
for ( i=0;i<10;i++ ) fwrite(&st[i],sizeof(struct student),1,fp);
这句fwrite的第1个参数给出了要写入数据的起始地址
第2个参数给出要写入数据的字节数
第3个参数给出要写入数据的次数(或者说个数=1记录)
最后参数给出要写到哪个句柄打开的文件中去。
第2个回答  2014-12-30
首先看fwrite的man:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
The function fwrite() writes nmemb elements of data, each size bytes long, to the stream pointed to by stream, obtaining them from the location given by ptr.

就是从st[i]的地址取--》1个(第三个参数,是2的话就是2个)sizeof(struct student)长度的数据--》写进fp文件指针代表的文件。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网