中易网

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

答案:3  悬赏:0  
解决时间 2021-03-02 20:39


最佳答案


写入和读出的方式一样就行了:
给你个例子:
# 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;
}
全部回答
#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; }
每行10个元素,到a【8,5】一共8*10+6=86个元素,400+2*86=572
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请教FPGA的simple dual port ram的特性
G20/G307(路口)怎么去啊,有知道地址的么
南阳医专中外合作办学的毕业证是什么样的?跟
学位双修好吗?
签署萨德用地协议,乐天集团这是疯了吗
尊宝大厦地下停车库在哪里啊,我有事要去这个
天天酷跑的黄金十二月百万苹果豪礼大赠送是真
在中山买个停车位大概多少钱一个
2007款本田思域副驾驶安全气囊多少钱
开房间时候交了两天的钱 押金也交了 提前一天
湖北工业大学机械设计与自动化专业学院是中外
使用单位局域网连接到互联网的相关设置
幼儿园器械操解说词,歌曲是 MY OH MY
6字求押韵下联!
太原出租车充电每个月工资怎么开
推荐资讯
不择手段的人为什么可怕?
不锈钢橱柜定制一般要多久?
锦州南站距离渤海大学多远?
白天,。晚上,是什么意思
办理临时船员证大概要多长时间 需要多少钱?
土地使用税不交会有什么后果
小狗剖腹产有没有教学视频,兽医太垃圾了我想
露得清晶湛焕白乳液 广告那女的谁啊
媳妇叫公公有几种叫法
怎么样才能脱胎换骨,活出精彩
观音土是啥土
mysql是否有触发机制,可以执行shell脚本
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?