我把一个二维数组写成二进制文件然后再从中读出数据存在另一个二维数组里,怎么操作
答案:3 悬赏:0
解决时间 2021-03-02 20:39
- 提问者网友:神仙爷爷
- 2021-03-02 13:13
最佳答案
- 二级知识专家网友:哥在撩妹请勿打扰
- 2021-03-02 13:43
写入和读出的方式一样就行了:
给你个例子:
# include
#include
#include
int main(void)
{
float u2[200][200];
float u2_1[200][200];
int i,j;
FILE* fp=fopen("d:\\1.dat","wb+");
srand(time(0));
for (i=0;i<200*200;i++)
{
*((float*)u2+i)=rand()/100.0;
}
fwrite(u2,sizeof(u2),1,fp);
fclose(fp);
fp=fopen("d:\\1.dat","rb");
fread(u2_1,sizeof(u2_1),1,fp);
fclose(fp);
for (i=0;i<200;i++) //验证
{
for (j=0;j<200;j++)
{
if (u2[i][j]!=u2_1[i][j])
{
printf("内容不同\n");
return 1;
}
}
}
printf("内容相同\n");
return 0;
}
全部回答
- 1楼网友:迷人小乖乖
- 2021-03-02 15:35
#include
#include
#include
int main(void)
{
//srand((int)time(0));
FILE *fp;
if((fp=fopen("text.dat","ab+"))==NULL)
{
printf("open error");
exit(2);
}
float u2[200][200];//要写入的数组
float u3[200][200];//要读入的数组
int i,j;
for(i=0;i<200;i++)
for(j=0;j<200;j++)
u2[i][j]=1;//写入的数组
fwrite(u2,sizeof(float),200*200,fp);//写入的文件
fclose(fp);
if((fp=fopen("text.dat","ab+"))==NULL)
{
printf("open error");
exit(2);
}
fread(u3,sizeof(float),200*200,fp);//读出数组
for(i=0;i<200;i++)
for(j=0;j<200;j++)
printf("%f",u3[i][j]);
fclose(fp);
system("pause");
return 0;
}
- 2楼网友:许你一世温柔
- 2021-03-02 15:01
每行10个元素,到a【8,5】一共8*10+6=86个元素,400+2*86=572
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯