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 に答える