求解释一道C语言文件题目

#include<stdio.h>voidmain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d3.dat","wb+");... #include<stdio.h>
void main()
{
FILE*fp;
int i, a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","wb+");
fwrite(a,sizeof(int),3,fp);
fseek(fp,zizeof(int)*3,SEEK_SET);
fread(a,zizeof(int),3,fp);
fclose(fp);
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");
}
输出的结果系什么,为什么?
展开
 我来答
sun_siliang
2011-06-25 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4556万
展开全部
1 输出的结果为:
123456

2 分析:
void main()
{
FILE*fp;
int i, a[6]={1,2,3,4,5,6};
fp=fopen("d3.dat","wb+");
fwrite(a,sizeof(int),3,fp); //把数组a的前三个元素写入文件;
fseek(fp,sizeof(int)*3,SEEK_SET);//把文件指针从文件头开始向后移动12字节;
fread(a,sizeof(int),3,fp); //从文件中读3个整数值,因为12字节后没有数据,数组a值没有变化。
fclose(fp);
for(i=0;i<6;i++)
printf("%d",a[i]); //数组a的值没有发生变化,输出6个元素,即:123456
printf("\n");
}
追问
嗯,我觉得你分析得很好,但是答案是456456喔,为什么呢?我看你的还觉得你的对,能再仔细看一下有没有错嘛?
追答
我亲自测试过的,敢拿脑袋保证的。
夜尽天明月
2011-06-25 · TA获得超过129个赞
知道小有建树答主
回答量:443
采纳率:50%
帮助的人:223万
展开全部
应该是456456!后面的for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");无效,因为文件已经关闭fclose(fp);所以只是fwrite(a,sizeof(int),3,fp);
fseek(fp,zizeof(int)*3,SEEK_SET);
fread(a,zizeof(int),3,fp);命令有效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式