【问题标题】:How to populate an array with integers from a FILE?如何使用文件中的整数填充数组?
【发布时间】:2013-12-19 03:04:38
【问题描述】:

我完全迷路了,不知道如何从文件中获取要输入到数组中的整数。如果文件看起来像:

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。

【问题讨论】:

  • 你试过了,如果是的话是什么问题?
  • @Bourezg - 也许(看到最后几个问题)掌握调试器可能是明智的
  • 很高兴接受对前面问题的一些回答。
  • 道歉 Ed Heal 我知道我今天有点滥用网站了。
  • 不,你没有。只需要学习绳索!

标签: c arrays io


【解决方案1】:

为什么不

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

【讨论】:

  • 是的,== 1 更好。不需要额外的状态变量。
【解决方案2】:

为什么你把这行加了两次?

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;

【讨论】:

  • 可以使用for 循环
猜你喜欢
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多