使用C语言写一段读取文件中数据的程序,文件中的数据如下所示(只选取其中一部分展示):
# Reaction data
# N_spec N_REAC ReReac
9 19 0
# Species
O O2 H2 H2O OH H HO2 H2O2 N2
---- Reaction speed k= A*T**b*exp(-E/T) , A in mol/cm3, E in K
-- Af_type , TrReac, Fc_troe; ------ (0,1,2 normal, Fall-off, Dual_Arrhenius; TrReac=1 Three-body)
#--- 1 -------------------------
H+O2=O+OH
0 0 0.000
0.355000E+16 -0.4100 8354.3030
0 1 0 0 0 1 0 0 0
1 0 0 0 1 0 0 0 0
#--- 2 -------------------------
O+H2=H+OH
0 0 0.000
0.508000E+05 2.6700 3165.5762
1 0 1 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0
调试时发现输出信息总是在反复读同一行,调试时的代码如下所示:
int N = 1000;
char buff[N];
REACTION *REAC;
FILE * file = fopen("Reaction.in","r"); // 化学反应特征
printf("--------------Read Reaction.in -------------\n");
fgets(buff, N, file);
fgets(buff, N, file);
// N_spec 组分数目; N_REAC 化学反应数目; ReReac 逆反应速率算法(1 采用Arrhenius公式, 0 采用平衡常数)
fscanf(file,