我正在读取文件orderedfile.txt
中的数据。有时,这种文件的形式的报头:跳过C中文本文件的标题头
BEGIN header
Real Lattice(A) Lattice parameters(A) Cell Angles
2.4675850 0.0000000 0.0000000 a = 2.467585 alpha = 90.000000
0.0000000 30.0000000 0.0000000 b = 30.000000 beta = 90.000000
0.0000000 0.0000000 30.0000000 c = 30.000000 gamma = 90.000000
1 ! nspins
25 300 300 ! fine FFT grid along <a,b,c>
END header: data is "<a b c> pot" in units of Hartrees
1 1 1 0.042580
1 1 2 0.049331
1 1 3 0.038605
1 1 4 0.049181
有时无标头存在并且在第一行中的数据开始。我的数据读取代码如下所示。它在数据从第一行开始时起作用,但不在头中出现。有没有办法解决这个问题?
int readinputfile() {
FILE *potential = fopen("orderedfile.txt", "r");
for (i=0; i<size; i++) {
fscanf(potential, "%lf %lf %*f %lf", &x[i], &y[i], &V[i]);
}
fclose(potential);
}
切换到读取整行。这允许您检测标题,然后读取,直到数据开始。 – Yunnosch