【发布时间】:2014-04-30 16:11:26
【问题描述】:
我需要读取一个文件并在每个时间步将每一行 (int) 存储在一个整数数组中,然后在这个数组中工作。
输入看起来像这样:
0 16 12
1 10 17
2 14 8
3 12 17 16
9 14 16 19 13 5
19 16 6 17 11 15 9 4 12 18 8
然后使用这样的东西我可以读取和打印每一行,但我不能每次将每一行保存在一个数组中。
char matrix[500][500], space;
int numbers[500], i = 0, j;
int elementsA[10000];
FILE *fp = fopen("mygraph", "r");
int blabla[1000000];
int a;
while(!feof(fp))
{
fscanf(fp, "%d", &numbers[i]); // getting the number at the beggining
fscanf(fp, "%c", &space); // getting the empty space after the number
fgets(matrix[i++], 500, fp); //getting the string after a number
a ++;
}
for(j = 0; j < i; j++)
printf("%d %s %d\n", numbers[j], matrix[j]);
return(0);
}
感谢大家帮助我。
【问题讨论】:
-
你为什么不一次读一整行,然后解析它。有一个数组数组,每个子数组的大小都是动态的。每个数组中的第一个元素应该是后续元素的数量。
-
这就是我想做的,但我不知道该怎么做?
-
对不起,这不是代码编写服务。
-
@user3590067 - 请参阅下文了解您的问题的一些答案。
-
@OldProgrammer - 每个数组中的第一个元素应该是后续元素的数量...为什么?
标签: c arrays dynamic multidimensional-array fgets