我想读一个包含两列数字的文件。
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);
}
那么如何将文件的第一列中的数字放入一个数组,将第二列中的数字放入数组?
答案 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
。