我写了一个 C 程序,它的行为方式我不理解。我发布这篇文章是希望我能更多地了解 C。代码似乎正在使用 fscanf 将变量名写入其他变量,而根本没有要求它......
#include <stdio.h>
#include <stdlib.h>
int main() {
float BCL[6];
float varsRA[23],varsLA[23],varsBB[23],varsPV[23];
FILE *inputfil;
int i;
inputfil = fopen ("file.txt", "rt");
for(i=0;i<24;i++) {
fscanf(inputfil,"%f %f %f %f\n", &(varsRA[i]), &(varsLA[i]), &(varsBB[i]), &(varsPV[i]));
}
i=23;
printf("vars%d:%f %f %f %f\n",i,varsRA[i], varsLA[i], varsBB[i], varsPV[i]);
i=0;
while(!feof(inputfil)) {
fscanf(inputfil,"%f ",&(BCL[i]));
i++;
}
i=23;
printf("vars%d:%f %f %f %f\n",i,varsRA[i], varsLA[i], varsBB[i], varsPV[i]);
fclose(inputfil);
return 0;
}
结果是:
vars23:-66.336823 -68.164223 -57.850136 -60.762585
vars23:-66.336823 -68.164223 -57.850136 177.000000
为什么当我读取文件的其余部分时,varsPV 的最后一个值变为 177,这是 BCL 的第一个值?!
非常感谢你的帮助,玛塔