我完全迷失了,并且不知道如何将文件中的整数输入到数组中。如果文件如下:
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。
答案 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;