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

unable to write the value of an object to a text file c++

本文关键字:文本 文件 C++ 对象      更新时间:2023-10-16

我对 c++ 相当陌生,需要一些指导。我目前有一个由"单元格"对象组成的 9x9 2d 数组,用于存储单元格值、位置等内容。

我可以使用方法访问单元格值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() << " ";

'int cell::getValue(void(':无法将 'this' 指针从 'const cell' 转换为 'cell &'

编辑:网格定义如下:

cell grid[9][9];

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

从提供的代码中并不完全清楚,但是如果 grid 是 SodukuPuzzle 的成员,那么由于 Output 方法是 const,网格在方法中,这意味着grid[y][x]是 const。 cell::getValue是非常量,因此不能在常量对象上调用。您可能可以通过使cell::getValue常量来解决此问题。