我的数据必须使用管道输入的文本文件输入——这是在我的大学服务器上运行的。
我有两个双精度数,一个一维双精度数组和一个二维双精度矩阵。如何将其导入变量?
非常感谢!
好吧,您需要想出一些程序可以识别并编写提取的格式。如果只是为了一个程序,可以对数组进行编码,例如:
<num> <num> # list of dimensions
<num> <num> <num> ... # array values in the row major order
然后在您的程序中执行以下操作:
size_t m, n;
fscanf (f, "%zu %zu", &m, &n);
float (*array)[m][n] = malloc (sizeof (float) * m * n));
for (size_t i = 0; i < m; i++)
for (size_t j = 0; j < n; j++)
fscanf (f, "%f", &(*array)[i][j]);
这有点难看,因为您需要动态分配多维数组并使用括号引用它,但是这样做可以避免索引计算,否则您需要手动实现。