读取表文件并将其存储在数组中的问题

时间:2018-11-16 11:19:43

标签: c segmentation-fault scanf

我想读取并存储在具有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 

有什么问题吗?

1 个答案:

答案 0 :(得分:2)

在: if (file = NULL) 你应该放 if (file == NULL)

因为您需要比较的结果(等于),而是将NULL值分配给变量。