我正在制作一个数独程序,我有一个 test.txt 文件,内容为
53__7____
6__195___
_98____6_
8___6___3
4__8_3__1
7___2___6
_6____28_
___419__5
____8__79
其中“_”实际上是空格。我给你 _ 的原因是你可以看到每行实际上只有 9 个字符。
我当时在想我必须做一些类似 GRID[row][column] 的事情,但坦率地说,我不知道我应该把我的数组作为什么类型,我只是迷路了。
我只是想这样做,所以当我想输出说 GRID[0][0] 它返回 5,而如果我要求 GRID[0][3] 它返回一个''。
它得到了它,所以数组存储数字和空格是我完全迷路的地方
到目前为止我目前尝试过的内容:
int main()
{
ifstream myfile(test.txt);
string line;
char sudoku_grid[9][9];
if (myfile.is_open())
{
while(myfile.good())
{
getline(myfile, line);
cout << sudoku_grid[line] << endl;
}
myfile.close();
}
else cout << "error";
return 0;
}
它返回错误行 12: no match for 'operator [ ]' in 'sudoku_grid[line]'
这是我通过你们指导的尝试:
int main()
{
ifstream myfile(test.txt);
string line;
char sudoku_grid[9][9];
if (myfile.good())
{
for(int i = 0; i < 9; i++)
{
getline(myfile, line);
for(int j = 0; j < 9; j++)
{
if (line[j] == ' ')
sudoku_grid[j][i] = -1;
else sudoku_grid[j][i] = line[i];
}
cout << sudoku_grid[i] << endl;
}
myfile.close();
}
else cout << "error";
return 0;
}
结果是一个非常尴尬的奇怪字母和新数字的答案。