无法定制字符

Unable to cout char

本文关键字:字符      更新时间:2023-10-16

我不能理解这里的问题,所以我希望有人能帮上忙我有这样的程序开始int main((:

    Board br;
    GetNames();
    br.PresentPlayer();
    system("PAUSE");
    return 0;

GetNames((看起来像这样:

char p[100];
char p2[100];
Board br;
cout << "Please Enter Player 1's Name:";
cin >> _player_name_1;
cout << "Please Enter " << _player_name_1 << "'s Symbol(Make sure its 1 characters long):";
cin >> p;
cout << "Please Enter Player 2's Name:";
cin >> _player_name_2;
cout << "Please Enter " << _player_name_2 << "'s Symbol(Make sure its 1 characters long):";
cin >> p2;
br.SetSymbols(p[0], p2[0]);

Board::SetSymbols(char p,char p2(看起来像这样:

void Board::SetSymbols(char p1,char p2)
{
_player_char_1 = p1;
_player_char_2 = p2;
_current_player = _player_char_1;
cout << _current_player << endl;
}

变量在板中。h:

char _player_char_1;
char _player_char_2;
char _current_player;

最后PresentPlayer((:

void Board::PresentPlayer()
{
cout << _current_player << endl;
}

因此,当执行SetSymbols时,它会正确打印_player_char_1然而,当执行PresentPlayer时,它会打印出你要执行的符号alt+numlock数字

为什么会发生这种事??

char _player_char_1;
char _player_char_2;
char _current_player;

应该是

char *_player_char_1;
char *_player_char_2;
char *_current_player;

或者,由于您使用C++,停止使用char*(您没有为它们分配内存或检查边界(,请改用std::string

void Board::SetSymbols(char p1,char p2)

需要

void Board::SetSymbols(char *p1,char *p2)

甚至更好的

void Board::SetSymbols(std::string &p1, std::string &p2)