2016-11-25 3 views
0

私は0と1のファイルを持っています。数字は、ファイルから読み込んで配列に配置したいASCIIマップを表します。地図をテキストファイルに作成して、すべての配列場所に手動で割り当てます。C++ネストループでファイルから読み込み、2次元配列に値を代入する(固定)

以下は私のコードです。なぜエラーがあるのか​​わかりません。

この小さなエラーですべてのヘルプははるかだろう1は、ニースの下に赤い線に結果をファイルから彼らに数字を読み取り、配列にそれらを挿入する必要があります

一部を見ることができるので、私は、エラー画像が追加されますここで

#include <fstream> 
#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    char levelOneArray[30][30]; 
    ifstream levelOne; 
    char digit; 

    levelOne.open("levelOne.txt"); 
    for (int x = 0; x < 30; ++x) 
    { 
     for (int y = 0; y < 30; ++y) 
     { 
      levelOne >> digit; 
      char value = digit; 
      levelOneArray[y][x] = digit; 
     } 
    } 

    for (int x = 0; x < 30; ++x) 
    { 
     for (int y = 0; y < 30; ++y) 
     { 
      cout << levelOneArray[y][x]; 
     } 
     cout << endl; 
    } 
    cout << endl; 

    int end; 
    cin >> end; 
    return 0; 
} 

//This is what is contained in the levelOne.txt file 
111111111111111111111111111111 
100000000000000000111000000111 
101111101110001110111001110111 
101111101110001110000001110001 
101111101110001111111101111111 
101111100000001111111100011111 
101111101110001111111100011111 
100000000000001111111100011111 
101111110000000000111100000001 
101000010111111110111100000001 
101111010000000010111111111101 
101111011111111010111111111101 
101111000000001010111101000001 
101111111111101010111101000001 
100000111111101010111101011111 
101110111111101010111100011111 
100000111111101011111110011111 
100111111111101001111110011111 
100110000000000001111110000001 
100000111100001000000000111001 
100000100101101111111110111011 
100110110101101000011000111001 
100110110101101011011011111001 
100000000001101011000011111001 
100000000011101011111111111001 
111110110011101011111111111101 
100110110011101011111111111001 
101100000010000000100000100001 
100000000000001000000100000011 
111111111111111111111111111111 

イメージワンError Image One 画像二Error Image two

私のイメージです感謝
+0

それは – Sniper

+0

Wooohを作るはifstream .. [OK]を私は、私は、出力右の入力およびOを参照 – Daniel

+0

Aを試してみましょうか? – Daniel

答えて

1

あなたの配列levelOneArrayは、29行と29列(つまり、インデックス0..28)、for-loopでは30までループしますが、これは1をあまりにも大きくします。

int levelOneArray[29][29]; 
//... 

for (int x = 0; x < 29; ++x) 
{ 
    for (int y = 0; y < 29; ++y) 
    { 
    // .. 
    } 
} 
+0

ええ、はい....私は理解しています。病気もそれを修正します..ありがとう – Daniel

関連する問題