从c中的文本文件中读取矩阵

时间:2015-04-15 17:41:37

标签: c arrays matrix text-files

我正在尝试读取文本文件并将数据存储在矩阵中。我在读完每一行后打印结果,似乎它正在工作,但如果我在最后打印矩阵,我的结果不一样。我找不到我做错了什么!

int main()
{
    int i,j;
    double value[10000][2];
    FILE *archivo;
    archivo = fopen("pruebas.txt","r");
    if (archivo == NULL)
        exit(1);
    i=0;
    while (feof(archivo) == 0)
    {
        fscanf( archivo, "%lf %lf %lf", &value[i][0],&value[i][1],&value[i][2]);
        printf("%10.0f %f %f\n", value[i][0], value[i][1], value[i][2]);
        i++;
    }

    printf("Your matrix:\n");
    for(j = 0; j < i; j++)
        printf("%10.0f %10.3f %10.3f\n", value[j][0], value[j][1], value[j][2]);

    fclose(archivo);
    return 0;
}

这是该程序的输出:

1 2 3 
4 5 6  
7 8 9   
Your matrix:  
1 2 4  
4 5 7  
7 8 9  

1 个答案:

答案 0 :(得分:6)

您声明double value[10000][2];,然后访问value[i][2]。使用[2]声明的数组包含2个元素,索引为01。访问索引'2'会覆盖其他内存。

使用

double value[10000][3];