c语言 float存储txt,c语言怎么从数据文件txt读取float的数据到二维数组中呢

C 语言(C90)没有动态二维数组。你自己用 malloc 分配内存就好了。

由于 C90 中动态二维数组不存在,所以或者是用一维数组模拟,或者是使用一个动态指

针数组逐行分配内存。

用一维数组模拟的方法:

double *arr = malloc(line * col * sizeof(double));

访问时用 arr[i * col + j] 之类的方式。但分配空间需要知道 line 和 col,所以数据

文件需要预读取,获取行数和列数。

用动态指针数组,简单做法就是直接分配一个足够大的指针数组,然后每行单独分配空间

读入,这可以避免读两次数据文件:

double **arr = malloc(MaxLine * sizeof(double *));

for (i = 0; 没读完; ++i) {

arr[i] = malloc(col * sizeof(double));

向 arr[i] 装数据

}

麻烦一点的,可以让 arr 动态增长。

要不是为了特别省空间,一般用 double,不要用 float。

C99 虽然有 VLA,也不要在这种场合用。VLA 是在栈里分配的,而一般读数据文件是要

超出栈空间的。

【 在 rtm (bob) 的大作中提到: 】

: 数据文件中保存中未知行和列数的float型矩阵

: 怎么从文件中读取数据到二维数组呢

: (我已经解决了未知列数的读取,用feof判读,然后用fscanf读到二维数组中

: ...................

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值