c++枚举类未正确显示

标签 c++ enums

代码如下:

#include "stdafx.h"
#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
#include <iomanip>


enum Suit : long {Heart, Club, Spade, Diamond};
enum class Color : char {Red = '*', Blue, Yellow, Green};
int main(int argc, wchar_t* argv[])
{
    using namespace std;
    auto suit = Suit::Club; 
    auto color = Color::Yellow;
    cout << setw(37) << left << "Suit value: " << setw(5) << right << suit << endl;
    cout << setw(37) << left << "Suit value +10: " << setw(5) << right << suit + 10 << endl;
    cout << setw(37) << left << "Color value: " << setw(5) << right << static_cast< char >(color) << endl;
    cout << setw(37) << left << "Color value +10: " << setw(5) << right << static_cast< int >(color) << endl;

    wchar_t x;
    wcin >> x;
    return 0;
}

vs2017运行结果:

Suit value:                              1
Suit value +10:                         11
Color value:                             ,
Color value +10:                        44

所以 char * 被打印为逗号,为什么?

最佳答案

红色'*'黄色'*' + 2,即','.

更具体地说,42 是 '*' 的 ASCII 值,44 是 ','Red黄色 相差 2。

关于c++枚举类未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091651/

相关文章:

c++ - “obj_type”未在此范围内声明,注意 : suggested alternative: enum Value_type

c++ - 我可以在 C++ 中使用未标记值的枚举吗?

c# - BCL 中的任何地方是否有一个(隐藏得很好的)通用枚举用于启用/禁用?

c++ - 在 macOS 中处理 VBI 数据

c++ - 奇怪的 C++ 模板和常量问题

java - 如何将 java bean 值转换为网页/演示文稿值?

c# - 枚举值 '' 对于类型 > 'EnumType' 无效,无法序列化

c++ - C++如何将数组理解为指针的观点?

c++ - Qt抽象类作为接口(interface)

c++ - 从模板创建用于在 Qt 中打印的 PDF 文档