我把一个二维数组写成二进制文件然后再从中读出数据存在另一个二维数组里,怎么操作

 我来答
庄政警
2014-03-18 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:890万
展开全部

写入和读出的方式一样就行了:

给你个例子:

# include <stdio.h>
#include <time.h>
#include <stdlib.h>
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;
}
帅大静1315
2014-03-18
知道答主
回答量:23
采纳率:0%
帮助的人:9.2万
展开全部
#include<stdio.h>
#include<stdlib.h>

#include<windows.h>
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;
}
追问
也很感激你,我的问题解决了 不过由于楼上比较早我只能采纳他了 还是很感激你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式