首頁 > 後端開發 > C++ > 如何在不使用 if/switch 語句的情況下將 C 枚舉值列印為文字?

如何在不使用 if/switch 語句的情況下將 C 枚舉值列印為文字?

Patricia Arquette
發布: 2024-11-29 22:55:12
原創
506 人瀏覽過

How to Print C   Enum Values as Text Without Using if/switch Statements?

在C 中不使用if/switch 將枚舉值列印為文字

在C 中,枚舉提供了一種便捷的方式來表示一組命名常數。但是,當列印枚舉值時,預設行為是顯示其數字表示形式。

假設我們有一個像這樣的枚舉:

如果我們嘗試使用列印枚舉值std::cout:

我們將得到數值0 而不是文字表示“ErrorA”。出現此問題的原因是 std::cout 缺乏將枚舉轉換為字串的內建支援。

解決方案

1.使用映射

一種方法是建立一個將每個枚舉值與其文字表示關聯的映射:

2。使用結構數組進行線性搜尋

另一個選擇是使用結構數組,每個結構數組包含一個枚舉值及其文字表示形式,然後執行線性搜尋:

3。使用 switch/case

最後,我們也可以使用 switch/case語句:

測試解決方案:

為了測試這些解決方案,我們可以使用以下程式碼建立一個執行檔:

執行此可執行檔應輸出枚舉值的文字表示形式:

以上是如何在不使用 if/switch 語句的情況下將 C 枚舉值列印為文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板