我想读取并存储在具有n
行和m
列的数组a
文件中:
8.315287e-07 1.422122e-28 9.128814e-32 8.693229e-28
1.015631e-06 1.422121e-28 9.128802e-32 8.693270e-28
1.240495e-06 1.422119e-28 9.128784e-32 8.693241e-28
我写了以下代码:
FILE* file = NULL;
double intensity[46][7] = {{0}};
int score[2][3];
int kloop = 0;
double sum=0;
file = fopen("intensity", "r");
// if (file = NULL) printf("file = NULL");
for (kloop = 0 ;kloop < 47;kloop ++){
if (fichier != NULL)
{
fscanf(file, "%d %d ...", &intensity[i][0],&intensity[i][1]...;
printf("%e %e n",intensity[i][0], intensity[i][1]...]);
}
}
fclose(file);
代码似乎无法读取(或打印(正确的数字,因为我得到了这个:
4.424023e-315 1.426064e-315 9.885327e-316 1.536630e-315 1.269882e-315
4.437332e-315 1.426064e-315 9.885326e-316 1.536631e-315 1.269882e-315
4.447104e-315 1.426064e-315 9.885325e-316 1.536630e-315 1.269882e-315
然后,当我取消注释第7行时,我得到了一个"分段错误"错误。它使用的是一个包含整数的简单文件:
1 2 3
4 5 7
知道问题出在哪里吗?
在:if (file = NULL)
你应该把if (file == NULL)
因为您想要比较的结果(相等(,但却将NULL
值分配给变量。