无法将对象的值写入文本文件C++
问题描述:
我对C++相当陌生,需要一些指导。 我目前有一个9x9二维数组,由“单元”对象组成,存储诸如单元格值,位置等信息。无法将对象的值写入文本文件C++
我可以用int getValue();
我用我的整个程序这种方法没有任何问题的方法访问单元格的值,但是,试图每个单元格的值流到发生时,我的问题文本文件。
下面是流值到一个文本文件的方法:
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() << " ";
'廉政电池::的getValue(无效)':不能转换'this'从'常量单元格'指向'单元格&'
编辑:网格定义如下:
cell grid[9][9];
请不要犹豫,询问是否需要更多信息。 任何帮助,将不胜感激!
答
从提供的代码中不完全清楚,但是如果网格是SodukuPuzzle的成员,那么由于Output方法是const,因此网格在方法内,这意味着grid[y][x]
是常量。 cell::getValue
是非常量,因此不能在常量对象上调用。你可以通过设置cell::getValue
const来解决这个问题。
+0
辉煌,正是我所需要的,非常感谢! –
由于'SudokuPuzzle :: Output()'是'const','grid'是const。你只能在const对象上调用const方法。将'getValue'的声明更改为'int cell :: getValue()const' –
@RichardCritten谢谢你,完美地工作,不能相信我花了多少时间尝试解决这个问题! –