-2

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

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);      
}

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

4

2 回答 2

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"这将避免文件中的换行问题

于 2013-04-11T13:37:31.790 回答
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文件太长。

于 2013-04-11T13:40:21.250 回答