c语言,从文件中读取未知长度数值并存入数组

源文件txt的数据格式例子:
4 111 1.2 2.1 3.3 4.2 2.2 1.1 2.3 9.4
3 222 2.2 2.3 6.2 5.2 2.1 2.3
...
0
-------------------------------------------
不知道可能出现的行列数,
第一列为每行的坐标个数
第二列为代号,
第三列起为坐标,
第一列为每行的坐标个数,
左后一行单独一个0作为结尾。

想要实现坐标个数为一个数组,代号为一个数组,坐标可以为二维数组或者两个一位数组。

主要因为行列数不确定让我很头大,麻烦各位高手。
急急急
补充:列数和行数最大都不超过100

第1个回答  2018-06-21
FILE *fp; float a; int i,j,k;
int num[100][2]; //存储个数和代号
float zb[100][100] //存坐标
i=0;
while( !feof (fp) ){ //feof(fp)判断fp是否到结尾位置。根据fp使用后会移动,
//将fp移动到文件结尾作为判断结束条件
fscanf(fp, "%f" , &num[0][i] );
fscanf(fp,"%d",num[1][i]);
for (k=0;k<num[0][i])
fscanf(fp,"%f",zb[i][k]);
i+=1;
}
第2个回答  2015-04-25
后面的坐标个数有没有限制,就是最大个数是多少。追问

列数和行数都小于100

追答

赞同楼下的看法。

第3个回答  推荐于2016-09-26
使用fscanf()函数就能够实现:
具体在百度查找fscanf函数使用方法追问

您回答的也太笼统了吧,我也知道fscanf就能实现啊😂
问题是我不知道具体的行列数,所以不知道要怎么定义数组然后赋值

追答

使用fgets函数,通过读行来实现,然后使用strtok字符串分割,然后使用字符串转数字函数strtod函数

追问

我去研究一下,谢谢

追答

you are welcome

本回答被提问者和网友采纳
相似回答