数値を配列に格納する方法はわかりましたが、数独プログラムを作成していて、入力ファイルから読み取って格納する必要があります。ファイルには半分完成した Sudoku ボードが含まれているので、それを使っていくつかの作業を行う必要があります。私の問題は、ボード上の数字が 123456789 のようにスペースで区切られていないことです。各数字を個別に読み取って、配列内の異なる位置に格納する必要があります。ただし、cin はグループ全体を取得するだけですが、cin.get() は ASCII 値を取得します...そのため、それらを個別に保存する方法について少し混乱しています。たぶん、私が見ていないだけの明らかな答えかもしれませんが、わかりません。どんな助けでも大歓迎です。
返信ありがとうニック。入力ファイルから 2 次元配列を埋める小さな関数があります。ここにあります:
for ( i = 0; i < 行; i++ ) {
for ( j = 0; j < COLS ; j++ )
{
in.get(getData);
data = getData - '0';
myArray[i][j] = data;
}
}
あなたが推奨した getData - '0' 部分を追加しましたが、これを出力として取得していることを除いて、機能しているようです。
1|2|3|4|5|6|7|8|9| -38|1|2|3|4|5|6|7|8| 9|-38|1|2|3|4|5|6|7| 8|9|-38|1|2|3|4|5|6| 7|8|9|-38|1|2|3|4|5| 6|7|8|9|-38|1|2|3|4| 5|6|7|8|9|-38|1|2|3| 4|5|6|7|8|9|-38|1|2| 3|4|5|6|7|8|9|-38|1|
現在の入力ファイルは '123456789' の 9X9 行と列なので、それを出力するだけです。-38 がどこから来ているのかわからない? それを表示するコードは、現在は機能が異なるだけで、それを埋めるコードと実質的に同じです。何か案が?その間、いじくり回します。
わかりました、それは気にしないでください、私はそれがエンドラインを読んでいて、物事を混乱させていることに気づきました. そこに cin.get(temp) を少し入れて、エンドラインを読んで続行しました。それが正しいやり方であることを願っています。