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

admin2019-01-11  25

问题 有如下定义:
    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(stmct 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://kaotiyun.com/show/PZxp777K
0

相关试题推荐
最新回复(0)