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 都没有获得任何有意义的数据,它们只是未初始化的垃圾数据。

我很惊讶这甚至可以编译,因为你有两个函数应该返回整数,但没有设置为返回任何东西。

于 2012-09-16T14:26:36.260 回答