我想将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;
}
答案 0 :(得分:0)
您想读取值对列表吗?听起来您需要具有(可能很长)两个数字的数组。我可能不建议设置一个结构来保存值,而不是记住X是第一个,Y是第二个。这样的事情应该起作用:
newBranch
对于错误情况,我没有添加任何亮点,如果您在读取值后对值进行了一些操作,但是您有所了解,这会有所帮助。
答案 1 :(得分:0)
您应该使用动态数组分配将元素从未知的txt文件扫描到数组中。 对于C ++程序员而言,最佳解决方案是std::vector。 但是C程序员应该使用替代解决方案。 请阅读这篇文章:(std::vector alternative for C)