首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-04 
新手提问:关于文件读取的一个问题有这样一个文件line 512.432 423.24232.342 34.3433.34 43.34542.76 45.4

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

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);

热点排行