这是我编写的程序的一小部分,用于将文件 BesselFunction.txt
的内容保存到数组 ZeroBesselFuncTM
constant=fopen("BesselFunction.txt","r");
for(i=0;i<20;i++){
fscanf(constant,"%lf\n", &zero);
ZeroBesselFuncTM[i]=zero;
printf("inside for loop\n");
}
for(i=0;i<20;i++){
printf("%0.4lf\n", ZeroBesselFuncTM[i]);
}
虽然数组循环了 19 次,但它没有读取我的输入文件。
最佳答案
您需要检查文件是否已打开以及输入是否已读取。如果文件提前结束,您还需要停止阅读。
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
const char *filename = "BesselFunction.txt";
double ZeroBesselFuncTM[20];
double zero;
int i, j, n;
FILE *constant;
constant = fopen(filename, "r");
if (constant != NULL) {
i = -1;
do {
i++;
n = fscanf(constant, "%lf\n", &zero);
if (n == 1) {
ZeroBesselFuncTM[i] = zero;
} else if (n == 0) {
fprintf(stderr, "Invalid input\n");
exit(EXIT_FAILURE);
}
} while ((i < 20) && (n != EOF));
for(j = 0; j < i; j++) {
printf("%0.4f\n", ZeroBesselFuncTM[j]);
}
} else {
fprintf(stderr, "Cannot open file %s: %s\n", filename, strerror(errno));
exit(EXIT_FAILURE);
}
return 0;
}
关于c - 我想扫描 txt 文件并将这些数字保存在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50617385/