1

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

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
4

1 回答 1

2

这很简单:将其转换为char

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

对于DEPARTURE.

它以这种方式工作的原因是,当在表达式中使用时,枚举通常被提升为int(或者如果它们的值不适合,则提升为更大的整数类型int)。但是,您在枚举中具有正确的char值,因此您可以强制转换它。

于 2013-04-02T07:13:58.007 回答