0

I have a vector declared like following:

    vector < vector<char> > v;

Depend of player I would like to insert x or o into vector. I am doing it like this:

 v[y][x]= set%2 ? 'o':'x';

In my vector instead o or x I am getting: 120 'x'. Why? What should I do to insert only x?

4

1 回答 1

4

问题是您很可能将 char 打印为整数,这将为您提供 120 的“x”。请参阅ascii 表

正如@us2012 所指出的,考虑到您对如何看待价值的评论:

在调试器中我得到这样的值: {move=0 win=false v=[2]([2](120 'x',0),2) }game_size* const

这只是显示额外信息的调试器。

如果你想打印这个值,你可以选择精确的表示——或者使用printf参数,或者通过static_cast你想要打印的内容。

打印:

std::cout << v[y][x] << std::endl;

会给你'x',因为向量存储了一个char

如果您想以十进制查看它,只需使用:

std::cout << static_cast<int>(v[y][x]) << std::endl;
于 2013-03-10T19:28:58.837 回答