與字串輸入一樣,有時候使用 cin>> 讀取字元也不會按我們想要的結果行事。
例如,因為它會忽略掉所有前導白色空格,所以使用 cin>> 就不可能僅輸入一個空格或回車符。除非使用者輸入了空格鍵、製表符之外的其他字元,否則程式將不可能通過 cin 語句繼續執行(一旦輸入了這樣的字元,在程式可以繼續下一個語句之前,仍然需要按確認鍵)。因此,要求使用者“按確認鍵繼續”的程式,不能使用 >> 運算子唯讀取按確認鍵的行為。
在這些情況下,cin 物件有一個名為 get 的內建函數很有幫助。
因為 get 函數是內建在 cin 物件中的,所以可稱之為 cin 的一個成員函數。get 成員函數讀取單個字元,包括任何白色空格字元。如果程式需要儲存正在讀取的字元,則可以通過以下任意一種方式呼叫 get 成員函數。
在這兩個例子中,假設 cin 是正被讀入字元的 char 變數的名稱:
cin.get (ch);
ch = cin.get();
如果程式正在使用 get 函數簡單地暫停螢幕直到按確認鍵,並且不需要儲存字元,則該函數也可以這樣呼叫:
cin.get();
請注意,在所有這 3 個程式設計語句中,get 函數呼叫的格式實際上是一樣的。首先是物件的名稱,在此範例中它是 cin。然後是一個句點,其後是被呼叫的成員函數的名稱,在這裡當然就是 get。語句的末尾是一組括號和一個表示結束的分號。這是呼叫任何成員函數的基本格式,如圖 1 所示。
圖 1 成員函數呼叫的基本格式