c语言怎么把实数放入数组,实数数组的文件读写有关问题

实数数组的文件读写问题

问题应该很简单吧

假设有一个double的二位数组,大概200x10000维

其实就是个数据文件

10000可能是变动的,不是固定的。

怎么把这个数组存到一个txt或者dat文件什么的?

然后,怎么从文件里,把这些数据读出来,继续放在一个二维数组里面?

大家有什么好方法?谢谢!

分享到:

------解决方案--------------------

用fread/fwrite分批读写。

引用:问题应该很简单吧

假设有一个double的二位数组,大概200x10000维

其实就是个数据文件

10000可能是变动的,不是固定的。

怎么把这个数组存到一个txt或者dat文件什么的?

然后,怎么从文件里,把这些数据读出来,继续放在一个二维数组里面?

大家有什么好方法?谢谢!

------解决方案--------------------

double buf[200][10000];

double** p=buf;

FILE* p_file=fopen("文件名","w");

while(*p!=NULL){

fwrite(*p,sizeof(double)*10000,1,p_file);

p++;

}

fclose(p_file);写的话差不多。

------解决方案--------------------

#include 

double d[200*100000];

FILE *f;

int y,x;

int main() {

for (y=0;y<200;y++) {

x=0;

d[y*100000+x]=(double)y*100000.0+(double)x;

x=99999;

d[y*100000+x]=(double)y*100000.0+(double)x;

}

f=fopen("d.dat","wb");

fwrite(d,sizeof(double),200*100000,f);

fclose(f);

for (y=0;y<200;y++) {

x=0;

d[y*100000+x]=0.0;

x=99999;

d[y*100000+x]=0.0;

}

f=fopen("d.dat","rb");

fread(d,sizeof(double),200*100000,f);

fclose(f);

for (y=0;y<200;y++) {

x=0;

printf("%.15lg,",d[y*100000+x]);

x=99999;

printf("%.15lg\n",d[y*100000+x]);

}

return 0;

}

//0,99999

//100000,199999

//200000,299999

//300000,399999

//400000,499999

//500000,599999

//600000,699999

//700000,799999

//800000,899999

//900000,999999

//1000000,1099999

//1100000,1199999

//1200000,1299999

//1300000,1399999

//1400000,1499999

//1500000,1599999

//1600000,1699999

//1700000,1799999

//1800000,1899999

//1900000,1999999

//2000000,2099999

//2100000,2199999

//2200000,2299999

//2300000,2399999

//2400000,2499999

//2500000,2599999

//2600000,2699999

//2700000,2799999

//2800000,2899999

//2900000,2999999

//3000000,3099999

//3100000,3199999

//3200000,3299999

//3300000,3399999

//3400000,3499999

//3500000,3599999

//3600000,3699999

//3700000,3799999

//3800000,3899999

//3900000,3999999

//4000000,4099999

//4100000,4199999

//4200000,4299999

//4300000,4399999

//4400000,4499999

//4500000,4599999

//4600000,4699999

//4700000,4799999

//4800000,4899999

//4900000,4999999

//5000000,5099999

//5100000,5199999

//5200000,5299999

//5300000,5399999

//5400000,5499999

//5500000,5599999

//5600000,5699999

//5700000,5799999

//5800000,5899999

//5900000,5999999

//6000000,6099999

//6100000,6199999

//6200000,6299999

//6300000,6399999

//6400000,6499999

//6500000,6599999

//6600000,6699999

//6700000,6799999

//6800000,6899999

//6900000,6999999

//7000000,7099999

//7100000,7199999

//7200000,7299999

//7300000,7399999

//7400000,7499999

//7500000,7599999

//7600000,7699999

//7700000,7799999

//7800000,7899999

//7900000,7999999

//8000000,8099999

//8100000,8199999

//8200000,8299999

//8300000,8399999

//8400000,8499999

//8500000,8599999

//8600000,8699999

//8700000,8799999

//8800000,8899999

//8900000,8999999

//9000000,9099999

//9100000,9199999

//9200000,9299999

//9300000,9399999

//9400000,9499999

//9500000,9599999

//9600000,9699999

//9700000,9799999

//9800000,9899999

//9900000,9999999

//10000000,10099999

//10100000,10199999

//10200000,10299999

//10300000,10399999

//10400000,10499999

//10500000,10599999

//10600000,10699999

//10700000,10799999

//10800000,10899999

//10900000,10999999

//11000000,11099999

//11100000,11199999

//11200000,11299999

//11300000,11399999

//11400000,11499999

//11500000,11599999

//11600000,11699999

//11700000,11799999

//11800000,11899999

//11900000,11999999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值