枚举

时间:2017-08-01 12:28:51

标签: c++ enums

我试图使用(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时,为什么我需要这样做),否则这有什么不对?

1 个答案:

答案 0 :(得分:2)

默认情况下,在这种情况下,枚举值被视为int513的十进制ASCII值;如果你想打印3,你需要明确地投射它。

std::cout << static_cast<char>(rank::third);