有如下定义 struct st { int a; float b; } x[10]; FILE *fp; 若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是

admin2021-02-25  24

问题 有如下定义
struct st
{ int  a;   float  b; } x[10];
FILE  *fp;
若文件已正确打开,且数组x 的10个元素均已赋值,以下将数组元素写到文件中的语句错误的是

选项 A、for(i=0; i<10; i++)
            fwrite(x,sizeof(struct st),1,fp);
B、fwrite(x,10*sizeof(struct st),1,fp);
C、fwrite(x,sizeof(struct st),10,fp);
D、for(i=0; i<10 ;i++)
            fwrite(&x,sizeof(struct st),1,fp);

答案A

解析 fwrite()函数用法是fwrite(void *buffer,int size,int n,FILE *fp),其中buffer为要输出的数据的首地址,A选项中,因为n=1,即每次写入1个结构体数据,x是数组的首地址,因此,每次写入的数据都是数组的首个结构体元素,没有将整个数组写入文件中去,答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/w5z0FFFM
0

最新回复(0)