如何将文件数据标记为存储在C中的数组?

时间:2011-11-19 21:49:37

标签: c file-io

假设我有一个以纯文本形式存储的nxn双精度网格,由单个空格分隔的列,以换行符分隔的行,例如:

1.01 2.22 6.10
-22.10 -15.0 1.0
2.3 -4.4 5.5

我所知道的是数字将是双精度数,程序必须将nxn双精度数(即方形矩阵)解析成2-d数组,但不会提前知道n的值。如果有nxm数字,那么程序就可以退出。 感谢。

1 个答案:

答案 0 :(得分:2)

阅读相关内容,使用strtok(s, " \t")对其进行标记,然后在结果上调用strtod并存储它们。添加健全性检查以确保您获得的是 n × n 矩阵。

更好的是,如果您的平台拥有它,请使用strsep代替strtok

或者,拨打scanf n × n 次并每次检查其返回值,最后检查您正在阅读的文件是否为EOF