如题所述
æå°å
&st[i]
ä¸çæ°æ® é¿åº¦ä¸ºsizeof(struct student)çæ°æ® åå°æå¼çæ件fpä¸
ç®åç¹è¯´ å°±æ¯æstæ°ç»ç第i个æ°æ® åå°æ件éé¢(äºè¿å¶æ¹å¼)
&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记录)
最后参数给出要写到哪个句柄打开的文件中去。
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文件指针代表的文件。
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文件指针代表的文件。