读书人

新手提问:关于文件读取的一个有关问题

发布时间: 2012-02-04 15:43:08 作者: rapoo

新手提问:关于文件读取的一个问题
有这样一个文件

line 5
12.432 423.24
232.342 34.34
33.34 43.345
42.76 45.45
34.32 324.34
line 2
432.12 32.24
32.23 34.34
line 21
.
.
line n
.
.
----------
即line后面的数字n表示该line所包的点的数目。然后分别以两列表示该点的x,y坐标。
能不能用什么方法先将line后面的点数n读出来,然后根据这个数字n用fscanf读出n对x,y坐标存入两个数组,然后再读下一个n,再用fscanf继续。。。。。
读取x,y坐标时我用的是下面这样的函数(之前在版上问的):

void DataRead(double abc[][2], int n, FILE* stream)
{
for(int j=0;j <n;j++)
fscanf(stream,"%lf %lf\n",&abc[j][1],&abc[j][2]);
}

但这个n值需要我自己手工输入,由于数据量太大,所以想问问有没有简便一点的方法~ = =

[解决办法]
char tokA[20];
int n;
FILE *fp;
fp = fopen(argv, "r");
fscanf(fp, "%s %d", tokA, n);
[解决办法]
int n;
FILE *fp;
fp = fopen("a.txt", "r");
fscanf(fp, "%*s %d", &n);

读书人网 >C++

热点推荐