[英]C++ Printing Array
所以我有一個2d數組我用作網格圖,其中每個數組塊都是地圖上的空格。
所以在我的main()中我用數據初始化了數組'Map'
char Map[ROWS][COLS]={'x'};
ROWS = 10,COLS = 20
后來我用函數PrintMap調用
void PrintMap(const char Map[ROWS][COLS], const bool showTreasure)
{
for (int countr=0; countr<ROWS;countr++){
for (int countc=0; countc<COLS;countc++){ //print map
if (!showTreasure){
if (Map[countr][countc]!='T')
cout << Map[countr][countc];
else
cout << '*';
} else {
cout << Map[countr][countc];
}
}
cout << endl;
}
}
網格上的一個空間是游戲中的寶藏或目標所在的位置。 在PrintMap的參數中是bool showTreasure,它是否要在地圖上顯示“T”或者是否要隱藏它。
因此,數組中的一個空格將是'T',而所有其他空格將是'*','X'或'P'。
*是沒有任何東西的地方。
所以if語句應該說:如果showTreasure為false(意味着你想要隱藏'T'):你打印數組中的內容,如果它不是'T'或打印'*',如果它是T 。
現在我的問題是,即使我用200 * s初始化數組,當我運行程序時它只打印出1 *。
如果您的初始化是這一行:
char Map[ROWS][COLS]={'x'};
然后將矩陣初始化為單個x
后跟199個NULL字符。
請參閱https://stackoverflow.com/a/201116/29157上的優秀說明。
有關std::fill()
更多信息,請參閱https://stackoverflow.com/a/3948314/29157
感謝您的提示, CantChooseUsernames !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.