C ++从文件和构造加载Matrix

时间:2013-09-18 16:33:21

标签: c++ file-io constructor

我正在创建一个程序来获取矩阵,该函数调用 matrixname .loadMatrix(),然后从那里使用它。但是,我被构造函数绊倒了。我有:

构造

Matrix Matrix(int row, int col){

int v;

for(int i=0; i<row; i++){
    for(int j=0; j<col; j++){
        fin >>v;
        M.setElement(i, j, v);
    }
}
}

和函数loadMatrix:

Matrix Test::loadMatrix(std::string filename){
std::ifstream fin(filename);

int r;
int c;

fin >>r;
fin >>c;

return Matrix M(r, c);

}

我的问题是我应该在构造函数中执行所有 fin&gt;&gt; 吗?或者这会起作用吗?我现在无法编译并进行反复试验,因为我在计算机无法使用的情况下正在使用我的平板电脑。

2 个答案:

答案 0 :(得分:0)

fin在函数loadMatrix中是局部的..它在Matrix构造函数中未定义

答案 1 :(得分:0)

fin 在Matrix构造函数的范围内声明,因此不是这样做的。

您是否可以将所有内容都读入一维数组,然后通过引用将数组作为内部数据传递给Matrix?您如何查看数据取决于您,但这两种方法称为行专业专栏

从维基百科中获取的2x3矩阵的行主要存储的示例是

  int[6] = {0,1,2,3,4,5}
            ^     ^

其中每个新行对应于每个第3个元素。

列的主要存储空间

  int[6] = {0,3,1,4,2,5}
            ^   ^   ^

其中每个第2个元素对应一列。