如何打印枚舉變量的內(nèi)容?
#include <stdio.h>
#include <string>
using namespace std;
struct Student
{
? ? int math;
? ? int english;
};
enum myclass {
? ? chinese,
? ? english,
? ? math,
? ? PE,
? ? art,
? ? computer,
};
int main(int argc, char** argv)
{
? ? struct Student s = { 95,35 };
? ? myclass my = myclass::math;
? ? printf("?");
? ? return 0;
}
2024-01-07
枚舉變量的提出是為了方便對(duì)一組離散的值進(jìn)行管理和表示,而為了正確的限定這組離散的值的范圍,就規(guī)定了枚舉變量和整數(shù)值相關(guān)聯(lián)。
一般來(lái)說(shuō),我們不會(huì)對(duì)枚舉變量的值進(jìn)行打印,而是根據(jù)其值進(jìn)行一些邏輯判斷,例如下面的代碼:
if (my == myclass::math) {
? ? ? ? printf("my class is math!");
????????// 處理 my 為 match 的邏輯
}
如果想打印其值的話,直接把枚舉變量看作一個(gè)整數(shù)進(jìn)行打印即可:
printf("The value of my is: %d\n", my);
當(dāng) my 為 match 的時(shí)候,值應(yīng)該為 2,因?yàn)槭菑?0 開始排序的:
enum myclass {
? ? chinese,? ? ? // 0
? ? english,? ? ? ?// 1
? ? math,? ? ?????? // 2
? ? PE,? ? ? ? ???????// 3
? ? art,? ? ? ? ????? ?// 4
? ? computer,? ? // 5
};