Я написал программу для чтения координат X, Y и Z молекулы из файла (input.xyz) и выполнения некоторой задачи. Однако я хочу, чтобы моя программа пропустила первые две строки, поскольку мой входной файл имеет следующую структуру:
3
water
O -0.73692879 -1.68212007 -0.00000000
H 0.03427635 -1.68212007 -0.59075946
H -1.50813393 -1.68212007 -0.59075946
Я использовал следующий раздел в моем коде
fptr = fopen(filename, "r");
fseek(fptr,3,SEEK_SET);
for(i=0;i<Atom_num;i++)
{
X[i] = Y[i] = Z[i] = 0;
fscanf(fptr,"%2s%lf%lf%lf",Atom[i].symbol,&X[i],&Y[i],&Z[i]);
printf("%2s\t%lf\t%lf\t%lf\n",Atom[i].symbol,X[i],Y[i],Z[i]);
}
fclose(fptr);
Где Atom_num это первая строка input.xyz
Однако printf показывает следующий результат:
at 0.000000 0.000000 0.000000
er 0.000000 0.000000 0.000000
O -0.736929 -1.682120 -0.000000
Я не знаю, почему fseek () не работает. Кто-нибудь может мне с этим помочь?