如何通過鍵盤輸入整型數給列舉變數賦值

2021-06-27 03:51:34 字數 1171 閱讀 2263

在程式設計中,有時會用到由若干個有限資料元素組成的集合,如一周內的星期一到星期日七個資料元素組成的集合,由三種顏色紅、黃、綠組成的集合,乙個工作班組內十個職工組成的集合等等,程式中某個變數取值僅限於集合中的元素。此時,可將這些資料集合定義為列舉型別。因此,列舉型別是某類資料可能取值的集合,如人的性別的集合。可如下定義:

enum t***;

而且,列舉型別與整型常量值有一定的聯絡.。上面定義了乙個名為t***的列舉型別,它有2個元素值:man,woman。在編譯器編譯程式時,給列舉型別中的每乙個元素指定乙個整型常量值

(也稱為序號值

)。若列舉型別定義中沒有指定元素的整型常量值,則整型常量值從

0開始依次遞增。因此t***的2個元素man,woman依次對應整型常量值0,1。但是,列舉型別有以下兩個特點:

不能用鍵盤通過

"cin>>"

向列舉變數輸入元素值,只能通過初始化或賦值運算子輸入。例如:

enum t*** ***1=man;//定義列舉變數時進行初始化

t*** ***2; //定義了乙個t***型別的列舉變數***2

***2=man;//通過賦值運算將元素值man賦給***2

t*** ***3;

cin>>***3;//這是錯誤的,無論輸入元素值man,woman還是序號值0,1

可用"cout<<"

輸出列舉變數,但輸出的是元素對應的序號值,而不是元素值。例如

cout<

雖然不能通過鍵盤直接給列舉變數輸入元素值,但是可以將輸入的整型常量值強制轉換後賦給列舉變數。例如,定義乙個性別的列舉型別,通過鍵盤設定性別,並輸出。

方法1:通過符號(int &)

#include using namespace std;

int main()

;//定義列舉型別t***

t*** ***; //定義列舉變數***

cout<<"輸入0或1:0代表man,1代表woman"<>(int &)***; //通過整型引用給***賦值

switch(***) //通過switch迴圈輸出性別

;//定義列舉型別t***

t*** ***; //定義列舉變數***

int gender;//定義臨時變數gender,用於儲存輸入的序號值

cout<<"輸入0或1:0代表man,1代表woman"<

python如何獲取鍵盤輸入

python2中 raw input函式 raw input 函式從標準輸入讀取乙個行,並返回乙個字串 去掉結尾的換行符 str raw input enter your input print received input is str這將提示你輸入任意字串,然後在螢幕上顯示相同的字串。當我輸入 ...

C語言如何接收通過鍵盤輸入的任意長度字串

有時候需要對使用者輸入的字串進行處理,由於事先不知道使用者會一次性輸入多長的字串,一般有三種處理方法 1 根據估計使用者最多輸入字串長度進行申請空間。2 使用getch scanf c 等乙個字元乙個字元的接收處理。3 使用 while 1 scanf 1000s str 對str字串進行處理 在末...

Linux鍵盤輸入時如何隱藏輸入的字串

今天遇到乙個小需求,執行某個應用程式時,需要驗證密碼,不能顯示輸入的內容,即不回顯。有人推薦使用 getpass 函式,通過man查閱發現該介面提示被淘汰,建議使用 termios。於是經過多方調研,決定使用getch 函式,並配合 termios使用,關鍵 如下 set disp mode 介面用...