无法定制字符
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)
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存