如何接受文件中的信息并将其输入到数组中?

时间:2014-10-22 23:43:29

标签: c

我有一个包含这些值的文件:

9 10 11 9.5 10.2 9.8 10 8.7 9.3 9.1 9 8.9
4 5 5 4 6 5 4 3 4 5 5 4
8 11 10 8.5 10.7 9 11 8.5 9.4 9 10 9.9
5 5 5 5 5 5 5 5 5 5 5 5
9 9 9 9 9 9 9 9 9 9 9 9
4 5 5 4 6 5 4 3 4 5 5 4
8 9 10 8.5 9.2 8.8 9 7.7 8.3 8.1 8 7.9
7 4 6 6 6 5 6 6 6 6 5 6 
10 11 12 10 11.2 9 11 9.7 9 9.1 10 9.9
6 5 6 6 6 5 6 6 6 6 5 6 
10 9 11.2 9.5 10.8 9 10.3 8 9.3 9.1 9 8.9
5 4 5 4 6 5 4 3 4 5 5 4
9 10 10.4 8.5 10.2 9.2 11.1 8 9.4 9 10 9.9
6 4 5 5 5 5 5 5 5 5 5 5
10 8 9.6 9 9.6 9.7 9 9 9.7 8 10 9
5 4 5 4 6 5 4 3 4 5 5 4
9 8 10.8 8.5 9.5 8 9.5 7 8.3 8.1 8.8 9
5 4 5 4 6 5 4 3 4 5 5 4
11 10 11 10 11.3 9.4 11 9 9.5 8 10 7
4 5 5 4 6 5 4 3 4 5 5 4

我需要将这些值接受到一个数组中,这样我就可以得到每个其他行中最大的数字,以及其他行中最低的数字。

说我做一个数组

float array[20][12];

这似乎不起作用:
fscanf(ifp, "%f", &main_array[20][12]);

那么如何将这些值接受到我的数组中呢?

1 个答案:

答案 0 :(得分:1)

你需要按值读取值,使用循环,你可以做这样的事情:

float array[20][12];
int n = 20 * 12;
int i;
for(i = 0; i < n; i++)
    fscanf(ifp, "%f", (&array[0][0] + i));

那是因为你不能一次读取所有文件。

另一种方式,也许更容易理解(因为不使用指针算术)是:

int i, j;
for(i = 0; i < 20; i++)
    for(j = 0; j < 12; j++)
     fscanf(ifp, "%f", &array[i][j]);