如何使用FILE中的整数填充数组?

时间:2013-12-19 03:04:38

标签: c arrays io

我完全迷失了,并且不知道如何将文件中的整数输入到数组中。如果文件如下:

1 2 3
4 5 6
7 8 9

我想要一个数组a[9] = {1,2,3,4,5,6,7,8,9}然后我该怎么做呢?

会不会有这项工作?

int a[9];
int i;

infile = fopen("test.txt","r");
while(fscanf( infile, "%d", *(a+i) != EOF)
{
     fscanf( infile, "%d", *(a+i))
     i++
}

实际上,我希望数组是一个任意大数,知道文件不会包含超过该数量,即1000。

2 个答案:

答案 0 :(得分:2)

为什么不

for (int i = 0; fscanf(infile, "%d", &a[i]) == 1; ++i);

答案 1 :(得分:1)

为什么要两次包含这一行?

fscanf(infile, "%d", *(a+i));

曾经作为一个条件,一次在循环体内?这是多余的。这将有效:

int i = 0;
while(fscanf(infile, "%d", *(a + i) != EOF)
{
     i++;
}

或者更好的是,让它更强大:

int i = 0, ret;
while((ret = fscanf(infile, "%d", *(a + i++)) != EOF) && (ret == 1))
    continue;