基本的に、9x9 グリッド (数独パズル) を含むファイルがあります。現在、この数独パズルは部分的にしか完成していません。空のスペースは "_" (アンダースコア) に置き換えられています。ファイルの外観は次のとおりです。
5 _ _ _ _ _ 1 7 _
1 _ 6 5 _ 9 _ 4 _
4 7 2 1 _ 6 _ _ _
9 _ _ _ _ _ 5 _ _
_ 1 8 _ 9 5 4 _ _
6 _ _ 4 _ 2 3 8 9
_ 4 _ _ _ _ 9 3 _
_ 9 _ 7 _ 3 _ 5 _
2 6 3 9 5 8 7 1 4
そして、ここに私のコードがあります:
for(int row=0;row<9;row++)
{
for(int column=0;column<9;column++)
{
fin >> num;
if(num == '\95')
sudokuPuzzle[row][column] = 0;
else
sudokuPuzzle[row][column] = num;
cout << sudokuPuzzle[row][column] << " ";
}
cout << endl;
}
私が抱えている問題は、次の行にあります。
if(num == '\95')
アンダースコアの 10 進値を ASCII テーブルで調べたところ、それが見つかりました。ただし、ループ内の cout ステートメントが実行されるたびに、配列がファイルの最初の数値 5 だけで埋められていることが示されます。整数と文字を適切に比較するにはどうすればよいでしょうか?
参考までに: 基本的に私がやろうとしているのは、すべてのアンダースコアを 0 に置き換えることです。