cocos2d-xでテキストファイルを扱う

テーマ:
ゲームを作る場合はキャラクターのステータスや、マップ情報を読み込むファイルを使うことがあります。いつもはプロパティリストを使っているのですが、2次元配列の大きめのマップを扱うことになったので、CSV形式のテキストファイル(.txt)を読み込むことにしました。

CCFileUtils *fileUtils = CCFileUtils::sharedFileUtils();
std::string filePath = fileUtils->fullPathForFilename("stage.txt");
unsigned long nSize = 0;
unsigned char* pBuffer = fileUtils->getFileData(filePath.c_str(), "r", &nSize);
CCLog("%s",pBuffer);
delete[] pBuffer;


上記はただテキストファイルを読むこむだけですので以下の例でやってみました。

#include <fstream>

std::string filePath = CCFileUtils::sharedFileUtils()->fullPathForFilename("csv.txt");
ifstream ifs(filePath.c_str());
std::string csvLine;

if(!ifs) return false;
int i=0;
while ( getline(ifs, csvLine) )
{
 istringstream csvStream(csvLine);
 std::string csvCol;

 while ( getline(csvStream, csvCol, ',') )
 {
  if (atoi(csvCol.c_str()) != 0)
  {
   CCLog("%d",atoi(csvCol.c_str()));
  }
 }
}