Code:
#include<stdio.h>
#include<stdlib.h>
//#include<string.h>
#include<math.h>
#define PI 2*acos(0)
int main(int argc, char *argv[])
{
FILE *ifp=NULL;
ifp = fopen("input","r");
char c;
int i=0,i0=0,i1=0,i2=0;
int lines, TotalAtoms, N, CNum, CaNum, ONum;
float x[20],y[20],z[20],RealBasis[3][3];
float CoordC[50][3],CoordCa[50][3],CoordO[50][3];
if(ifp == NULL)
{
lines = 0;
}
else
{
while((c = fgetc(ifp)) != EOF)
{
if(c == '\n')
{
lines = lines + 1;
//find the total number of atoms and number of each species
if(lines == 1)
{
fscanf(ifp,"%d %d %d",&CNum,&CaNum,&ONum);
}
TotalAtoms = CNum+CaNum+ONum;
if(lines == 2)
{
fscanf(ifp,"%d",&N);
printf("%d %d\n",N, TotalAtoms);
}
//Writing the real space basis vectors
if((lines>=3) && (lines<6))
{
fscanf(ifp,"%f %f %f",&x[lines],&y[lines],&z[lines]);
RealBasis[i][0] = N*x[lines];
RealBasis[i][1] = N*y[lines];
RealBasis[i][2] = N*z[lines];
printf("%d %f %f %f\n",lines,RealBasis[i][0],RealBasis[i][1], RealBasis[i][2]);
i++;
}
//Writing the Co-ordiantes of each atoms
if(lines>=6 && lines <(CNum+6)) //C
{
fscanf(ifp,"%f %f %f",&x[lines],&y[lines],&z[lines]);
CoordC[i0][0] = x[lines];
CoordC[i0][1] = y[lines];
CoordC[i0][2] = z[lines];
printf("%d %f %f %f\n",lines,CoordC[i0][0],CoordC[i0][1],CoordC[i0][2]);
i0++;
}
if(lines>=(CNum+6) && lines <(CNum+CaNum+6)) //Ca
{
fscanf(ifp,"%f %f %f",&x[lines],&y[lines],&z[lines]);
CoordCa[i1][0] = x[lines];
CoordCa[i1][1] = y[lines];
CoordCa[i1][2] = z[lines];
printf("%d %f %f %f\n",lines,CoordCa[i1][0],CoordCa[i1][1],CoordCa[i1][2]);
i1++;
}
if(lines>=(CNum+CaNum+6) && lines<(TotalAtoms+6)) //O
{
fscanf(ifp,"%f %f %f",&x[lines],&y[lines],&z[lines]);
CoordO[i2][0] = x[lines];
CoordO[i2][1] = y[lines];
CoordO[i2][2] = z[lines];
printf("%d %f %f %f\n",lines,CoordO[i2][0],CoordO[i2][1],CoordO[i2][2]);
i2++;
}
if(lines == (TotalAtoms+6))
{
printf("Stop");
break;
}
}
}
}
fclose(ifp);
-----------------------------------------End of Code------------------------------------