簡體   English   中英

C ++打印陣列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM