(简单C ++)从文件中获取带有向量的矩阵

时间:2016-05-20 14:15:59

标签: c++ matrix fstream

我使用以下代码创建文件:

void Skrivtilfil(double A[nmax][nmax],double b[nmax],double M[nmax][nmax+1],int n, int m){
    int i,j;

    ofstream UdFil;

    UdFil.open("Totalmatrix.txt");

    UdFil<<n<<endl;
    UdFil<<m<<endl;

    for(i=0;i<n;i++){
        for(j=0;j<=m;j++){
            UdFil<<M[i][j]<<" ";
        }
        UdFil<<endl;
    }

    UdFil.close();
    cout<<"\nFilen Totalmatrix.txt er Oprettet."<<endl;
}

这成功地为我提供了一份文本文件 like this

这样才能正常工作。 这是我的void函数,它应该从txt文档中检索矩阵:

void delA(double A[nmax][nmax],double b[nmax],double M[nmax][nmax+1], int &n, int &m){

    int i,j;
    ifstream IndFil;

    IndFil.open("Totalmatrix.txt");

    IndFil>>n;
    IndFil>>m;

    for(i=0;i<n;i++){
        for(j=0;j<=m;j++){
            IndFil>>M[i][j];
        }
    IndFil>>b[i];
    }

    IndFil.close();
}

然而,这给了我一个奇怪的结果,我的矩阵最终看起来 like this

有人有解决方案吗?我99%确定问题与我如何从文件中检索b [i]有关。

1 个答案:

答案 0 :(得分:0)

您还应在撰写代码中包含b[]值:

for(i=0;i<n;i++){
    for(j=0;j<=m;j++){
        UdFil<<M[i][j]<<" ";
    }
    UdFil<< b[i] << " ";
    UdFil<<endl;
}