c语言如何读取text中指定坐标

第一列是原子数,共2000个,每5个是一个分子,共400个分子,现在我要读取每个分子中前三个原子的坐标,如123,678,11 12 13,这样循环400次,怎么读取?

这是已知文件结构的文本文件,可以用有格式读的方法读入,
对不需要的数据,读的时候可以跳过去,跳的方法 是:
%*s 跳过一个字符串 ( 整数, 浮点数,字符串)
%*f 跳过一个浮点数。
例如:
FILE *fp= fopen("a.txt","r");
int i,j;
float x[400],y[400],z[400];
for (i=0;i<400;i++){
fscanf(fp,"%*s %f %f %f", &x[i], &y[i], &z[i]);
for (j=i;j<4;j++) fscanf ( fp,"%*s %*s %*s %*s");
}
for (i=0;i<10;i++) printf("%f %f %f\n" ,x[i], y[i], z[i]);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-12
#include<stdio.h>
#define N 400
float molecule[N][3];
void main()
{ int i,j; FILE *fp; char buffer[81];
if ( fp=fopen("data.txt","r") )
{ for ( i=0;i<N;i++ )
{ for ( j=0;j<5;j++ )
{ fgets(buffer,80,fp);
if ( j<3 ) sscanf("%d %f %f %f",molecule[i][0],molecule[i][1],molecule[i][2])
}
}
fclose(fp);
....//继续使用或处理这些数据
} else printf("无法打开文件读取数据。\n");
}本回答被网友采纳
相似回答