我试图使用(char) enum
存储我的排名,然后使用cout输出它们,但它没有正确输出。
#include <iostream>
using namespace std;
enum rank : char {
first = '1', second = '2', third = '3'
};
int main()
{
// other code ...
cout << rank::third;
// other code ...
}
输出51
!!!看这里 - http://ideone.com/8vHzQ5
这看起来像ascii值(?)所以我应该将它们关回char或其他类型(当我已经针对该枚举编写char
时,为什么我需要这样做),否则这有什么不对?
答案 0 :(得分:2)
默认情况下,在这种情况下,枚举值被视为int
。 51
是3
的十进制ASCII值;如果你想打印3
,你需要明确地投射它。
std::cout << static_cast<char>(rank::third);