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

Reading a matrix from a text file in c

我正在尝试读取文本文件并将数据存储在矩阵中。我在阅读每一行后打印结果并且看起来它正在工作,但是如果我在最后打印矩阵,我没有相同的结果。我找不到我做错了什么!

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  

您声明 double value[10000][2]; 但随后访问 value[i][2]。用 [2] 声明的数组包含 2 个元素,索引为 01。访问索引“2”正在覆盖其他内存。

使用

double value[10000][3];