读取文件并将输入转换为两个数组

时间:2013-04-11 13:32:40

标签: c arrays file

我想读一个包含两列数字的文件。

1   2 
3   4
5   6
7   8

我想将第一列中的数字放入一个数组,将第二列中的数字放入另一个数组中。这两个数组都将具有相同数量的元素。此程序中允许的最大元素数为100。

这是我到目前为止所拥有的。这只是将元素作为常规int读入并打印出来。

while (!feof (filereader))
{  
  printf ("%d %d\n",col_one,col_two);
  fscanf (filereader, "%d %d", &col_one, &col_two);      
}

那么如何将文件的第一列中的数字放入一个数组,将第二列中的数字放入数组?

2 个答案:

答案 0 :(得分:1)

int array1[100];
int array2[100];
int i, size = 0;

while (size<100 && fscanf (filereader, " %d %d", &array1[size], &array2[size])==2)
{  
     size++;
}

for (i=0; i<size; i++) {
   printf("array1[%d] = %d,  array2[%d] = %d\n",
          i, array1[i], i, array2[i]);
}

在scanf " %d %d"的格式说明符的开头添加空格,这样可以避免文件中换行符的问题

答案 1 :(得分:1)

由于你有一个最大尺寸,这很容易。只需像这样定义数组:

int firstArray[100];
int secondArray[100];
int size = 0;

然后执行循环,递增每行的索引:

while (!feof (filereader))
{  
     fscanf (filereader, "%d %d", &col_one, &col_two);
     firstArray[size] = col_one;
     secondArray[size] = col_two;
     size++;
}

如果文件太长,也许还要考虑确保size < 100