显示枚举类型

时间:2013-04-02 07:10:19

标签: c++ enums

好的,这是我的显示功能,以及与之关联的枚举类型。

enum EventType {ARRIVAL = 'A', DEPARTURE = 'D'};    


void EventList::display()
{
cout << "Event List: ";
for (ListNode *cur = head; cur != NULL; cur = cur->next)
{
    if (cur->item.type == ARRIVAL)
        cout << ARRIVAL << cur->item.beginTime << ":" << cur->item.transactionLength << " ";
    else if (cur->item.type == DEPARTURE)
        cout << DEPARTURE << cur->item.beginTime << " ";
}
cout << endl;

}

这个问题是我想要的输出是它显示A或D.不是与字母相关的整数值。我到底该怎么做?

Event List: 652:5 686

我想要阅读

Event List: A2:5 D6

1 个答案:

答案 0 :(得分:2)

这很简单:把它投到char

cout << char(ARRIVAL) << cur->item.beginTime << ":" << cur->item.transactionLength << " ";

DEPARTURE也一样。

它以这种方式工作的原因是,当在表达式中使用时,枚举通常会提升为int(如果它们的值不适合int,则为更大的整数类型)。然而,你在枚举中有正确的char值,所以你可以把它投出来。