全部问题 > 当前问题

如果这道题的文件打开方式为rb 呢

如题,输出是多少,这里fwrite中数组大小设置为3有什么影响

ki 2016-11-30 13:17:12

共 1 个回答

最佳答案

2016-11-30 18:32:40

由于文件打开方式是wb,打开或新建一个二进制文件,只允许写数据,因此fread并没有读入数据,x不受改变。


不过我改成wb+结果数字还是没变啊,我也不太懂。

问题来自: 文件的输入和输出
以下程序运行后的输出结果是 __【15】__ 。
#include <stdio.h>
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
  fp=fopen("test.dat","wb");
  fwrite(x,sizeof(int),3,fp);
  rewind(fp);
  fread(x,sizeof(int),3,fp);
  for(i=0;i<6;i++) printf("%d",x[i]);
  printf("\n");
  fclose(fp);
}
A. 123456
B. 123
C. 456
D. 654321
答案:A
解析:本题程序的功能是首先将1、2、3这3个数存入test.dat文件中,然后使用rewind可以将文件指针重置到文件头部。接下来,由于文件打开方式是wb,打开或新建一个二进制文件,只允许写数据,因此fread并没有读入数据,x不受改变。最后依次输出x[i]的值,因此答案是123456。