私は、.txtファイルからあらかじめ設計された25x25の迷路を2次元配列に入力し、それをコンソールに印刷し、迷路を通してキャラクターを移動させるという学校プロジェクトに取り組んでいます。主な問題は、文字を配列に移動することです。私は近くにいるように感じるが、私が持っているコードはプログラムがクラッシュする原因になる。2次元配列に.txt文字を割り当てる手助けが必要です。 C++
は、ここで私は配列に文字を移動するために使用していたループです:基本的に
int col=0;
ifstream inFile;
inFile.open("maze.txt");
char temp = inFile.get();
while(!inFile.eof())
{
for(int row=0; row<25; row++)
{
while(temp != '\n')
{
boundary[row][col] = temp;
col++;
temp=inFile.get();
}
temp=inFile.get();
}
}
inFile.close();
、ポイントはそれぞれのすべての文字を取ることによって、25×25文字配列にスペースとブロック文字の両方を移動することです新しい行の文字に達するまで配列の同じ行に挿入し、次の行の次の文字に移動し、whileループを再び開始する必要があります。
コンパイルは正常ですが、他のコードに移動する前にプログラムがクラッシュします。 形式を大幅に変更せずに修正する方法が分かっていれば、これはほんの一部に過ぎないので分かりますが、必要な場合は最初から始めています。
[ 'しばらく(!inFile.eof())'](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –
あなたは、プログラムがファイルを開くことに成功したことを確認することから始められます。 –
'境界 'はどのように宣言され/割り当てられていますか?どこがクラッシュし、スタックトレースは何ですか?また、外部のループだけでなく、get()を呼び出すたびにEOFをチェックすると、入力ファイルに余分な文字がある場合には「別の迷路をロードする」ことを意味し、 'col'のオーバーフローを引き起こします。あなたの現在のループ構成のインデックス。 – dlatikay