使用类方法打印数组的内容

时间:2013-03-01 19:09:51

标签: c++ arrays oop printing

我试图将“房间”对象的二维数组的内容作为一种打印/显示数组中的内容返回。

Room* m_map[10][10];

如下所示生成房间分散:

//Initialise array to NULL
for(int x=0;x<10;x++)
{
    for(int y=0;y<10;y++)
        m_map[x][y] = NULL;
}

for(int n=0; n<10; n++)
{       
    for(int ran=0; ran<3; ran++)
    {
        int r_n = rand() % 10 ;

        Room* r = new Room(n, "Normal", true, false, false, true);
        m_map[r_n][n] = r;
    }       

}

然后我想为这些房间的用户显示/打印,参考NULL。

所以我可以举例来说,如果NULL显示'#',如果它是一个房间留下''。

我不确定我应该在方法声明中返回的位?

真的很感激任何帮助或指向正确的方向

2 个答案:

答案 0 :(得分:1)

添加一个将数组打印到类中的方法:

void print() const 
{
  for(int n=0; n<10; ++n)
  {       
    for(int m=0; m<10; ++m)
    {
      std::cout << m_map[n][m] ? : "# " : ". ";
    }
    std::cout << "\n";
  }
}

答案 1 :(得分:1)

循环两个维度。每当你循环播放x时,显示一列中的所有房间,然后添加一个逗号。

当到达行尾并继续前进到下一行时,只需添加换行符即可在新行上打印下一列。

void MyClass::printMap(unsigned int numOfRows, unsigned int numOfCols)
{
  using std;
  for(unsigned int y = 0; y < numOfRows ; y++)
  {
    for(unsigned int x = 0; x < numOfCols ; x++)
    {
       if(m_map[y][x] == NULL)
          cout << # << ",";
       else
          cout << m_map[y][x].roomName() << ",";   
    }

    cout << endl;
  }
}