我把一个二维数组写成二进制文件然后再从中读出数据存在另一个二维数组...
发布网友
发布时间:2024-03-05 01:59
我来回答
共2个回答
热心网友
时间:2024-08-06 11:20
写入和读出的方式一样就行了:
给你个例子:
# 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;
}
热心网友
时间:2024-08-06 11:23
#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;
}