溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中cin.get的用法

發布時間:2021-08-31 20:11:36 來源:億速云 閱讀:133 作者:chen 欄目:開發技術

本篇內容主要講解“C++中cin.get的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++中cin.get的用法”吧!

與字符串輸入一樣,有時候使用 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 所示。

C++中cin.get的用法
圖 1 成員函數調用的基本格式

下面的程序演示了使用 get 成員函數的所有 3 種方式:

// This program demonstrates three ways to use cin.get()
// to pause a program.
#include <iostream>
using namespace std;

int main()
{
    char ch;
    cout << "This program has paused. Press Enter to continue.";
    cin.get(ch);
    cout << "It has paused a second time. Please press Enter again."; ch = cin.get();
    cout << "It has paused a third time. Please press Enter again.";
    cin.get();
    cout << "Thank you! \n";
    return 0;
}

程序輸出結果:

This program has paused. Press Enter to continue.
It has paused a second time. Please press Enter again.
It has paused a third time. Please press Enter again.
Thank you!

注意,在 IDE 中運行程序時,當程序終止,則輸出窗口會關閉,而 cin.get 函數可用于保持輸出屏幕可見。

混合使用 cin>> 和 cin.get

將 cin >> 與 cin.get 混合使用可能會導致煩人且難以發現的問題。請看下面的代碼段示例:

char ch;    //定義一個字符變量
int number; //定義一個整型變量
cout << "Enter a number: ”;
cin >> number;   // 讀取整數
cout << "Enter a character: ";
ch = cin.get() ;   // 讀取字符
cout << "Thank You!\n";

這些語句允許用戶輸入一個數字,而不是一個字符??磥淼?6 行的 cin.get 語句已經被跳過了。這是因為 cin>> 和 cin.get 使用略有不同的技術來讀取數據。

在示例代碼段中,當執行第 4 行時,用戶輸入一個數字,然后按回車鍵。假設輸入的是數字 100。按回車鍵會導致一個換行符('\n')存儲在鍵盤緩沖區數字 100 之后,如圖 2 所示。

C++中cin.get的用法
圖 2 鍵盤緩沖區存儲和讀取示意圖

當第 4 行中的 cin>> 語句讀取用戶輸入的數據時,它會在遇到換行符時停止。換行字符未被讀取,而是仍保留在鍵盤緩沖區中。從鍵盤讀取數據的輸入語句只在鍵盤緩沖區為空時等待用戶輸入值,但現在不為空。

當第 6 行中的 cin.get 函數執行時,它開始從先前輸入操作停止的鍵盤緩沖區讀取,并發現了換行符,所以它無須等待用戶輸入另一個值。這種問題最直接的解決辦法是使用 cin.ignore 函數。

到此,相信大家對“C++中cin.get的用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女