C ++ 2D数组空白输出

时间:2013-11-19 20:23:55

标签: c++ arrays

我正在尝试输出一个带有边框的2D数组,但由于一些奇怪的原因,我没有得到任何输出,只是一个空格。我很确定问题出在if语句中,但我不确定是什么问题。

#include <iostream>
#include "windows.h"
using namespace std;

//prototypes
void DisplayMap();
void SetBorder();

//global vars
const int H = 70;
const int W = 40;
char Map[H][W];

int main()
{
    //system("cls");
    DisplayMap();
    SetBorder();

    return 0;
}

void SetBorder(){
for(int i = 0; i < H; i++ ){
    for(int j = 0; j < W; j++){
        if(i == 0 || i == 69 || j == 0 || j == 39 ){ Map[i][j] = 'x';}
            // else Map[i][j] = ' ';
        }
    }
}


void DisplayMap(){
for(int i = 0; i < H; i++ ){
    for(int j = 0; j < W; j++){
            cout << Map[i][j];
        }
            cout << "\n";
    }


}

2 个答案:

答案 0 :(得分:3)

SetBorder();
DisplayMap();

交换函数调用。您想先设置边框字符,然后显示地图。

答案 1 :(得分:2)

您需要先填写Map,然后再显示它:

int main()
{
    //system("cls");
    SetBorder();
    DisplayMap();


    return 0;
}