【发布时间】:2018-11-22 18:59:53
【问题描述】:
我想将 txt 中的元素扫描到数组中。 txt 没有我要拥有的行数或列数,它只包含一个坐标和数组的元素。它看起来像这样:
2,3
2,1
3,0
-
我如何将这些数字放入一个数组中,以便 array[0][0] 将是 2 和 array[1][0] 将是 3 等等...
我也想让它与其他输入一起使用。
到目前为止我的代码:
??是否存在,因为如果我什至不知道每个输入 txt 将有多少行或列,我不知道应该如何声明这些。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE* in = fopen("in.txt", "r");
int x, y;
int array[??][??];
if (in == NULL) {
printf("Can't open in.txt");
fclose(in);
return 1;
}
if (fscanf(in, "%d,%d\n", &x, &y) != 2) {
printf("Cant read file.");
return 2;
}
for (int i = 0; i < ??; i++) {
for (int j = 0; j < ??; j++)
fscanf(in, "%d", &array[i][j]);
}
return 0;
}
【问题讨论】:
-
您说“它只包含一个坐标和元素”,但我在示例输入中没有看到
array[0][0]的坐标。 -
不是
array[0][1]应该是3,array[1][0]是下一个2吗?这对我来说更有意义。 -
这个问题我不清楚;你为什么读
x和y?它们实际上是数组边界吗?但之前你说你不知道数组边界。尝试更好地描述这一点会改善问题,并提供您尝试阅读的文件的真实示例。对于您提供的文件,您只需要一个固定宽度 2 的数组,因为每行有 2 个元素