C/C++列舉enum分別列印輸出列舉子和列舉值的方法
關於列舉列舉的基礎概念我這裡不再介紹,感興趣的同學可以查閱另一篇博文C/C++中列舉型別enum使用。這裡我主要提一下在除錯一個大型程式中遇到日誌列印中一個關於列舉輸出的小錯誤。
我們知道列舉分為列舉子和列舉值,就相當於鍵與值的對應關係。例如下面的列舉變數:
enum Example {FIRST,SECOND,THIRD}; // 三個列舉子對應列舉值預設是0,1,2。
那如何輸出列舉值和列舉子呢?
1 輸出列舉值
我們先看一個簡單的,輸出列舉值,其實非常簡單以整數形式輸出即可,如下:
printf("%d\n", FIRST); //輸出結果為:0
2 輸出列舉子
這裡有個很大的誤區,很多人會根據上面的輸出聯想到下面的方法:
printf("%s\n", (Example)1); // 想以字串形式輸出SECOND ×
這種方式是一個大大的錯誤,根本沒有此方法輸出列舉子,正確形式需要轉換一下關係,最終還是需要依靠條件判斷來輸出,程式如下:
int i;
scanf("%d", &i);
switch (i)
{
case 0: printf("FIRST\n"); break;
case 1: printf("SECOND\n"); break;
case 1: printf("THIRD\n"); break;
default:printf("NONE\n");
}
個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!
轉載請註明出處:http://blog.csdn.net/FX677588/article/details/76600033
相關文章
- ENUM列舉型別型別
- Java - Enum 列舉型別Java型別
- TypeScript 列舉enumTypeScript
- Java 列舉(enum)Java
- C++特別數的和(列舉)C++
- C++typedef宣告,enum列舉型別C++型別
- 認知列舉(C# Enum)C#
- mysql之ENUM列舉型別MySql型別
- iOS - OC Enum 列舉iOS
- Java enum列舉類詳解 列舉的常見用法Java
- 【C/C++】C和C++11之enum列舉的使用細節C++
- C++ 列舉型別介紹C++型別
- 關於C++列舉型別C++型別
- Java —— 列舉類(enum 類)Java
- Java 列舉 enum 詳解Java
- java基礎:enum列舉Java
- java中列舉(Enum)使用Java
- 【python】Enum 列舉類Python
- 再談java列舉enumJava
- 列舉和列舉的取值範圍
- 【C++】資料型別-列舉型C++資料型別
- Java 列舉、JPA 和 PostgreSQL 列舉JavaSQL
- c++11 實現列舉值到列舉名的轉換C++
- C# Enum列舉型別操作擴充套件類C#型別套件
- 聊聊TypeScript中列舉物件(Enum)TypeScript物件
- 聊一聊Java的列舉enumJava
- [C++]結構體、共同體和列舉型別C++結構體型別
- Java列舉型別enum的詳解及使用Java型別
- Java列舉enum可以有抽象方法! -RecepİnançJava抽象NaN
- Java列舉-通過值查詢對應的列舉Java
- C# 列舉與位列舉概述C#
- C#:列舉C#
- 列舉型別型別
- 從JDK角度認識列舉enumJDK
- 介面和列舉在方法中的區別
- dedecms聯動型別裡,知道列舉值,如何轉換為列舉名型別
- java列舉型別Java型別
- java 列舉型別Java型別