最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ cin.get用法案例詳解

 更新時(shí)間:2021年08月31日 16:23:12   投稿:xusong  
這篇文章主要介紹了C++ cin.get用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

與字符串輸入一樣,有時(shí)候使用 cin>> 讀取字符也不會(huì)按我們想要的結(jié)果行事。

例如,因?yàn)樗鼤?huì)忽略掉所有前導(dǎo)白色空格,所以使用 cin>> 就不可能僅輸入一個(gè)空格或回車符。除非用戶輸入了空格鍵、制表符之外的其他字符,否則程序?qū)⒉豢赡芡ㄟ^(guò) cin 語(yǔ)句繼續(xù)執(zhí)行(一旦輸入了這樣的字符,在程序可以繼續(xù)下一個(gè)語(yǔ)句之前,仍然需要按回車鍵)。因此,要求用戶“按回車鍵繼續(xù)”的程序,不能使用 >> 運(yùn)算符只讀取按回車鍵的行為。

在這些情況下,cin 對(duì)象有一個(gè)名為 get 的內(nèi)置函數(shù)很有幫助。因?yàn)?get 函數(shù)是內(nèi)置在 cin 對(duì)象中的,所以可稱之為 cin 的一個(gè)成員函數(shù)。get 成員函數(shù)讀取單個(gè)字符,包括任何白色空格字符。如果程序需要存儲(chǔ)正在讀取的字符,則可以通過(guò)以下任意一種方式調(diào)用 get 成員函數(shù)。

在這兩個(gè)例子中,假設(shè) cin 是正被讀入字符的 char 變量的名稱:

cin.get (ch);
ch = cin.get();

如果程序正在使用 get 函數(shù)簡(jiǎn)單地暫停屏幕直到按回車鍵,并且不需要存儲(chǔ)字符,則該函數(shù)也可以這樣調(diào)用:

cin.get();

請(qǐng)注意,在所有這 3 個(gè)編程語(yǔ)句中,get 函數(shù)調(diào)用的格式實(shí)際上是一樣的。首先是對(duì)象的名稱,在此示例中它是 cin。然后是一個(gè)句點(diǎn),其后是被調(diào)用的成員函數(shù)的名稱,在這里當(dāng)然就是 get。語(yǔ)句的末尾是一組括號(hào)和一個(gè)表示結(jié)束的分號(hào)。這是調(diào)用任何成員函數(shù)的基本格式,如圖 1 所示。

成員函數(shù)調(diào)用的基本格式
圖 1 成員函數(shù)調(diào)用的基本格式

下面的程序演示了使用 get 成員函數(shù)的所有 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;
}

程序輸出結(jié)果:

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 中運(yùn)行程序時(shí),當(dāng)程序終止,則輸出窗口會(huì)關(guān)閉,而 cin.get 函數(shù)可用于保持輸出屏幕可見(jiàn)。

混合使用 cin>> 和 cin.get

將 cin >> 與 cin.get 混合使用可能會(huì)導(dǎo)致煩人且難以發(fā)現(xiàn)的問(wèn)題。請(qǐng)看下面的代碼段示例:

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

這些語(yǔ)句允許用戶輸入一個(gè)數(shù)字,而不是一個(gè)字符??磥?lái)第 6 行的 cin.get 語(yǔ)句已經(jīng)被跳過(guò)了。這是因?yàn)?cin>> 和 cin.get 使用略有不同的技術(shù)來(lái)讀取數(shù)據(jù)。

在示例代碼段中,當(dāng)執(zhí)行第 4 行時(shí),用戶輸入一個(gè)數(shù)字,然后按回車鍵。假設(shè)輸入的是數(shù)字 100。按回車鍵會(huì)導(dǎo)致一個(gè)換行符('\n')存儲(chǔ)在鍵盤緩沖區(qū)數(shù)字 100 之后,如圖 2 所示。

鍵盤緩沖區(qū)存儲(chǔ)和讀取示意圖
圖 2 鍵盤緩沖區(qū)存儲(chǔ)和讀取示意圖

當(dāng)?shù)?4 行中的 cin>> 語(yǔ)句讀取用戶輸入的數(shù)據(jù)時(shí),它會(huì)在遇到換行符時(shí)停止。換行字符未被讀取,而是仍保留在鍵盤緩沖區(qū)中。從鍵盤讀取數(shù)據(jù)的輸入語(yǔ)句只在鍵盤緩沖區(qū)為空時(shí)等待用戶輸入值,但現(xiàn)在不為空。

當(dāng)?shù)?6 行中的 cin.get 函數(shù)執(zhí)行時(shí),它開(kāi)始從先前輸入操作停止的鍵盤緩沖區(qū)讀取,并發(fā)現(xiàn)了換行符,所以它無(wú)須等待用戶輸入另一個(gè)值。這種問(wèn)題最直接的解決辦法是使用 cin.ignore 函數(shù)。

到此這篇關(guān)于C++ cin.get用法案例詳解的文章就介紹到這了,更多相關(guān)C++ cin.get用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++入門語(yǔ)法之函數(shù)重載詳解

    C++入門語(yǔ)法之函數(shù)重載詳解

    這篇文章主要為大家詳細(xì)介紹了C++入門語(yǔ)法之函數(shù)重載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 關(guān)于VS2019 C++項(xiàng)目同時(shí)出現(xiàn)LNK2005 和LNK1169 error 的解決辦法

    關(guān)于VS2019 C++項(xiàng)目同時(shí)出現(xiàn)LNK2005 和LNK1169 error 的解決辦法

    這篇文章主要介紹了關(guān)于VS2019 C++項(xiàng)目同時(shí)出現(xiàn)LNK2005 和LNK1169 error 的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • C實(shí)現(xiàn)與 uint64_t 相同功能的類

    C實(shí)現(xiàn)與 uint64_t 相同功能的類

    本文給大家分享的是筆者實(shí)現(xiàn)的仿uint64_t的類,可以用在不支持uint64_t的平臺(tái)上,雖然現(xiàn)在功能還不完善,但是還是分享給大家,也算是給大家一個(gè)思路吧。
    2015-12-12
  • 詳細(xì)總結(jié)C++的排序算法

    詳細(xì)總結(jié)C++的排序算法

    趁空閑時(shí)間,小編決定把C++的排序算法分析并總結(jié)下,以便溫故知新。也方便需要的朋友可以參考學(xué)習(xí)。
    2016-07-07
  • OpenCV圖像處理基本操作詳解

    OpenCV圖像處理基本操作詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV圖像處理基本操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • C語(yǔ)言 設(shè)計(jì)模式之訪問(wèn)者模式

    C語(yǔ)言 設(shè)計(jì)模式之訪問(wèn)者模式

    這篇文章主要介紹了C語(yǔ)言 設(shè)計(jì)模式之訪問(wèn)者模式的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • c++ fstream 文件追加模式示例詳解

    c++ fstream 文件追加模式示例詳解

    本文給大家介紹c++ fstream 文件追加模式示例詳解,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-10-10
  • C語(yǔ)言實(shí)例真題講解數(shù)據(jù)結(jié)構(gòu)中單向環(huán)形鏈表

    C語(yǔ)言實(shí)例真題講解數(shù)據(jù)結(jié)構(gòu)中單向環(huán)形鏈表

    鏈表可以說(shuō)是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時(shí),就可以使用鏈表,這一點(diǎn)和數(shù)組很相似
    2022-04-04
  • C 標(biāo)準(zhǔn)I/O庫(kù)的粗略實(shí)現(xiàn)教程

    C 標(biāo)準(zhǔn)I/O庫(kù)的粗略實(shí)現(xiàn)教程

    下面小編就為大家分享一篇C 標(biāo)準(zhǔn)I/O庫(kù)的粗略實(shí)現(xiàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果

    如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果

    這篇文章主要給大家介紹了關(guān)于如何為Qt視圖中的文字實(shí)現(xiàn)彩虹漸變效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Qt具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評(píng)論

资兴市| 孝感市| 广州市| 商河县| 年辖:市辖区| 万全县| 华宁县| 北宁市| 磴口县| 蕲春县| 温州市| 通州区| 浮梁县| 永兴县| 牙克石市| 淮滨县| 化隆| 琼结县| 甘孜县| 磴口县| 胶州市| 凌海市| 长治县| 海阳市| 兴宁市| 伊金霍洛旗| 怀化市| 剑阁县| 泰安市| 敦化市| 云梦县| 西畴县| 山阳县| 宁南县| 辽阳县| 平潭县| 罗江县| 错那县| 上思县| 运城市| 拉孜县|