C++ 在二维数组c+中的特定位置打印字符+;

C++ 在二维数组c+中的特定位置打印字符+;,c++,arrays,multidimensional-array,C++,Arrays,Multidimensional Array,我需要在我的2D阵列的宝藏位置打印一个“T”。我在这方面遇到了麻烦。我有一个全局常数,其中宝藏='T'…当我打印地图时,它会在地图后面打印宝藏位置,而不是在实际位置。对于我的起始位置,我也必须这样做。代码: void PrintMap(const char Map[][COLS], const bool showTreasure) { int TreasureR, TreasureC; int StartR, StartC; for (int row = 0; row

我需要在我的2D阵列的宝藏位置打印一个“T”。我在这方面遇到了麻烦。我有一个全局常数,其中宝藏='T'…当我打印地图时,它会在地图后面打印宝藏位置,而不是在实际位置。对于我的起始位置,我也必须这样做。代码:

void PrintMap(const char Map[][COLS], const bool showTreasure)
{
    int TreasureR, TreasureC;
    int StartR, StartC;

    for (int row = 0; row < ROWS; row++)
    {
       for (int col = 0; col < COLS; col++)
       {
           if ((row == TreasureR && col == TreasureC) && showTreasure == true)
               cout << Map[row][col];
           else if ((row == StartR && col == StartC) && showTreasure == true)
               cout << START;
           else
               cout << EMPTY;

       }
    cout << endl;
    }


}
void PrintMap(const char Map[][COLS],const bool showTreasure)
{
国际司库,司库C;
int StartR、StartC;
对于(int row=0;rowcout您可以添加关于如何在映射位置处理项目的条件逻辑

下面是一个简单的例子:

for (unsigned int col = 0; col < maximum_columns; ++col)
{
  for (unsigned int row = 0; row < maximum_rows; ++row)
  {
    char c = Map[row][col];
    // Process any special printing
    switch (c)
    {
       case 'T':
         if (!showTreasure)
         {
            c = ' ';
         }
         break;
       case 'M':
         if (!showMonster)
         {
            c = ' ';
         }
         break;
    }
    cout << c;
  }
  cout << '\n';
}
for(unsigned int col=0;col你能提供一个我们可以运行的例子来重现这个问题吗?或者更详细地描述一下吗?你的代码会迭代并打印
Map[I][J]
很好。这也是你吗:???如果你简化你的生活并将宝藏字符放在
Map[]中怎么样
在正确的位置。宝藏是随机放置的,因此没有宝藏的确切位置。它打印得很好,但宝藏没有显示。这根本不是打印我的地图。如果这不起作用,则地图中除了空格外没有任何字符。