vectorの二次配列について(C++)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kei_sasaki2
記事: 17
登録日時: 10年前
住所: 北海道

vectorの二次配列について(C++)

#1

投稿記事 by kei_sasaki2 » 10年前

お世話になっております。
vectorの二次配列についてどうしても思い通りに処理できないので質問させて下さい。
map0.datというファイルからデータを読み込み、行ごとにカンマ(,)で分割して二次配列に格納しようとしています。
map.datの中身は以下のようになっており、1行目がマップ横幅、2行目がマップ縦幅になっています。

コード:

5
5
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
1行目2行目のマップ幅を読み取るとこまでは成功し、出力して確認しております。

しかしながら2次配列への格納がうまくいきません。

処理部のコードは以下です。

コード:


	//マップデータを外部ファイルから配列に読み込む
	ifstream dat("./dat/map0.dat");
	if (!dat) {
		exit(1);
	}
	string mw;	getline(dat, mw);	// ファイル1行目から横幅を読み取る
	map_width = atoi(mw.c_str());
	string mh;	getline(dat, mh);	// ファイル2行目から縦幅を読み取る
	map_height = atoi(mh.c_str());

	map_data.resize(map_height);
	for (int i = 0; i < map_height; i++) {
		map_data[i].resize(map_width);
	}

	vector<int> line_array;
	string line_buf;
	while (getline(dat, line_buf))
	{
		istringstream stream(line_buf);
		string tmp;
		while (getline(stream, tmp, ','))
		{
			line_array.push_back(atoi(tmp.c_str()));
		}
		map_data.push_back(line_array);
		line_array.clear();
	}
もしお解かりの方がいらっしゃいましたら、ご教示頂けると幸いです。m(_ _)m

kei_sasaki2
記事: 17
登録日時: 10年前
住所: 北海道

Re: vectorの二次配列について(C++)

#2

投稿記事 by kei_sasaki2 » 10年前

申し訳ありません、2日悩んでいたのに投稿直後に解決致しました。。(^^;
pushbackしているのでresizeは必要ありませんでした。

閉鎖

“C言語何でも質問掲示板” へ戻る