我想读取并存储在具有a
行和n
列的数组m
文件中:
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行时,我得到一个“ segmentation fault”错误。 它正在处理一个包含整数的简单文件:
1 2 3
4 5 7
有什么问题吗?
答案 0 :(得分:2)
在:
if (file = NULL)
你应该放
if (file == NULL)
因为您需要比较的结果(等于),而是将NULL
值分配给变量。