0

私は現在C ++を学んでおり、文字列の代わりに関数を呼び出す配列変数を作成するまで、コードはこれまでに進みましたが、何かがうまくいかず、それが何であるかを理解できません.問題は、正しくカウントすることだけです.最初の 2 文字、残りを └└└└ 記号としてカウントします。

コードは次のとおりです。

#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>



using namespace std;



int land(){
    HANDLE hConsole;
    hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
    char H = 72;
    cout<<H;
}

int player(){
    HANDLE hConsole;
    hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
    char X = 88;
    cout<<X;
}

    /*previously,i declared a string inside worldgen,and generated 2d array inside the for loop,but when i changed variables to call a function,first letters were X and H,but then it went └└└└└└└└└└└└└└└└└└└└└└└ for all the remaining characters.What's wrong here? */

int worldgen(int dimX,int dimY,int x,int y){  
    HANDLE hConsole;
    hConsole = GetStdHandle (STD_OUTPUT_HANDLE);
    system("TITLE MyTitleText");
    int H = land();
    int X = player();
    string world[dimX][dimY];
    for(int c = 0;c<dimY;c++){
        for(int count = 0;count<dimX;count++){
            world[count][c] = H;
            world[x][y] = X;
            cout<<world[count][c];
        }
        cout<<endl;
    }


}




int main(){
    HANDLE hConsole;
    hConsole = GetStdHandle (STD_OUTPUT_HANDLE);

    worldgen(70,15,10,10);

    cin.get();
}   
4

1 に答える 1

2

land() も player() も何も返さないため、H も X も意味のあるデータを取得しておらず、初期化されていない単なるガベージ データです。

int を返すはずであるが、何も返すように設定されていない 2 つの関数があるため、これがコンパイルされていることにも驚いています。

于 2012-09-16T14:26:36.260 に答える