C++ 在二维数组c+中的特定位置打印字符+;
我需要在我的2D阵列的宝藏位置打印一个“T”。我在这方面遇到了麻烦。我有一个全局常数,其中宝藏='T'…当我打印地图时,它会在地图后面打印宝藏位置,而不是在实际位置。对于我的起始位置,我也必须这样做。代码: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
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;row cout您可以添加关于如何在映射位置处理项目的条件逻辑
下面是一个简单的例子:
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[]中怎么样
在正确的位置。宝藏是随机放置的,因此没有宝藏的确切位置。它打印得很好,但宝藏没有显示。这根本不是打印我的地图。如果这不起作用,则地图中除了空格外没有任何字符。