无法将对象的值写入文本文件c ++

时间:2017-04-03 17:12:16

标签: c++ multidimensional-array ofstream

我对c ++很新,需要一些指导。 我目前有一个9x9 2d阵列由" cell"存储诸如单元格值,位置等内容的对象。

我可以使用方法int getValue();

访问单元格值
int cell::getValue()
{
  return value;
}

我在整个程序中使用此方法没有问题,但是,在尝试将每个单元格的值流式传输到文本文件时出现问题。

以下是将值流式传输到文本文件的方法:

void SudokuPuzzle::Output() const
{
ofstream fout("sudoku_solution.txt"); // DO NOT CHANGE THE NAME OF THIS FILE
if(fout.is_open())
{
    for(int y = 0; y < 9; ++y)
    {
        for(int x = 0; x < 9; ++x)
        {
            // output each grid value followed by " "
            fout << grid[y][x].getValue() << " ";

        }

        fout << endl;
    }
    fout.close();
}
}

错误发生在该行:

fout << grid[y][x].getValue() << " ";

&#39; int cell :: getValue(void)&#39;:无法转换&#39;这个&#39;指针来自&#39; const cell&#39;到&#39; cell&amp;&#39;

编辑:网格定义如下:

cell grid[9][9];

请不要犹豫,询问是否需要更多信息。 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

从提供的代码中不完全清楚,但如果grid是SodukuPuzzle的成员,那么当Output方法是const时,网格在方法内,这意味着grid[y][x]是const。 cell::getValue是非const的,因此无法在const对象上调用。你可以通过制作cell::getValue const。

来解决这个问题