假设我有一个以纯文本形式存储的nxn双精度网格,由单个空格分隔的列,以换行符分隔的行,例如:
1.01 2.22 6.10
-22.10 -15.0 1.0
2.3 -4.4 5.5
我所知道的是数字将是双精度数,程序必须将nxn双精度数(即方形矩阵)解析成2-d数组,但不会提前知道n的值。如果有nxm数字,那么程序就可以退出。 感谢。
答案 0 :(得分:2)
阅读相关内容,使用strtok(s, " \t")
对其进行标记,然后在结果上调用strtod
并存储它们。添加健全性检查以确保您获得的是 n × n 矩阵。
更好的是,如果您的平台拥有它,请使用strsep
代替strtok
。
或者,拨打scanf
n × n 次并每次检查其返回值,最后检查您正在阅读的文件是否为EOF