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

C++中關(guān)于getchar()的使用方法

 更新時間:2022年11月24日 10:29:46   投稿:jingxian  
這篇文章主要介紹了C++中關(guān)于getchar()的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

getchar()簡介

getchar()是C語言中的函數(shù),C++中也包含了該函數(shù)。

getchar()函數(shù)的作用是從標準的輸入stdin中讀取字符。

也就是說,getchar()函數(shù)以字符為單位對輸入的數(shù)據(jù)進行讀取。

getchar()讀取緩沖區(qū)方式

在控制臺中通過鍵盤輸入數(shù)據(jù)時,以回車鍵作為結(jié)束標志。

當輸入結(jié)束后,鍵盤輸入的數(shù)據(jù)連同回車鍵一起被輸入到輸入緩沖區(qū)中。在程序中第一次調(diào)用getchar()函數(shù)從輸入緩沖區(qū)中讀取一個字節(jié)的數(shù)據(jù)。

需要注意的是,如果此時在程序中第二次調(diào)用getchar()函數(shù),因為此時輸入緩沖區(qū)中還有回車鍵的數(shù)據(jù)沒有被讀出,第二個getchar()函數(shù)讀出的是回車符。

例如如下代碼

char test1 = getchar();char test2 = getchar();

此時在控制臺中輸入字符“a”并且按下回車鍵,test1的值是字符“a”,而test2的值是“\n”,如圖1所示。

圖1 test1和test2的值

解決方法

可以使用rewind()函數(shù)來清理輸入緩沖區(qū)中的數(shù)據(jù)。

該函數(shù)的格式為

void rewind( FILE* stream );

其中,參數(shù)stream表示指向FILE結(jié)構(gòu)的指針,即為指定的流。

該函數(shù)的作用是將文件指針移動到文件的起始位置處。

rewind()函數(shù)清理指定流中的錯誤指示符以及文件結(jié)束指示符。

將“2 getchar()讀取緩沖區(qū)方式”中提到的代碼修改為

char test1 = getchar(); rewind(stdin); char test2 = getchar(); rewind(stdin);

在控制臺中,首先輸入字符“a”然后按下回車鍵。

getchar()函數(shù)從輸入緩沖區(qū)中讀取字符“a”,之后調(diào)用rewind()函數(shù)清理輸入緩沖區(qū)中的數(shù)據(jù),stdin表示輸入緩沖區(qū)的指針;之后再在控制臺中輸入字符“b”,然后按下回車鍵,getchar()函數(shù)從輸入緩沖區(qū)中讀取字符“b”,最后再次調(diào)用rewind()函數(shù)清理輸入緩沖區(qū)中的數(shù)據(jù)。

此時,test1和test2的值如圖2所示。

圖2 test1和test2的值

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++使用數(shù)組來實現(xiàn)哈夫曼樹

    C++使用數(shù)組來實現(xiàn)哈夫曼樹

    給定N個權(quán)值作為N個葉子結(jié)點,構(gòu)造一棵二叉樹,若該樹的帶權(quán)路徑長度達到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹(Huffman?Tree)。哈夫曼樹是帶權(quán)路徑長度最短的樹,權(quán)值較大的結(jié)點離根較近
    2022-05-05
  • 詳解C++11中綁定器bind的原理與使用

    詳解C++11中綁定器bind的原理與使用

    C++11中引入的function機制,其中綁定器主要有三種:bind1st、bind2nd、bind(C++11)。本文就來和大家聊聊這些綁定器的底層實現(xiàn)原理與使用場景,需要的可以參考一下
    2022-12-12
  • Qt實現(xiàn)發(fā)送HTTP請求的示例詳解

    Qt實現(xiàn)發(fā)送HTTP請求的示例詳解

    這篇文章主要為大家詳細介紹了如何通過Qt實現(xiàn)發(fā)送HTTP請求,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-03-03
  • C++構(gòu)造函數(shù)的初始化列表詳解

    C++構(gòu)造函數(shù)的初始化列表詳解

    這篇文章主要為大家介紹了C++構(gòu)造函數(shù)的初始化列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 用c語言根據(jù)可變參數(shù)合成字符串的實現(xiàn)代碼

    用c語言根據(jù)可變參數(shù)合成字符串的實現(xiàn)代碼

    本篇文章是對用c語言根據(jù)可變參數(shù)合成字符串的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++虛析構(gòu)函數(shù)的使用分析

    C++虛析構(gòu)函數(shù)的使用分析

    本篇文章是對C++虛析構(gòu)函數(shù)的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C/C++中不同數(shù)據(jù)類型之間的轉(zhuǎn)換詳解

    C/C++中不同數(shù)據(jù)類型之間的轉(zhuǎn)換詳解

    這篇文章主要介紹了C/C++中不同數(shù)據(jù)類型之間的轉(zhuǎn)換詳解,數(shù)據(jù)類型轉(zhuǎn)換是計算機編程中常見的操作,用于將一個數(shù)據(jù)類型轉(zhuǎn)換為另一個數(shù)據(jù)類型,本文將對不同數(shù)據(jù)類型之間的轉(zhuǎn)換作出說明,需要的朋友可以參考下
    2023-10-10
  • C++17結(jié)構(gòu)化綁定的實現(xiàn)

    C++17結(jié)構(gòu)化綁定的實現(xiàn)

    這篇文章主要介紹了C++17結(jié)構(gòu)化綁定的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • C語言?隊列的實現(xiàn)全解析

    C語言?隊列的實現(xiàn)全解析

    隊列(Queue)與棧一樣,是一種線性存儲結(jié)構(gòu),它具有如下特點:隊列中的數(shù)據(jù)元素遵循“先進先出”(First?In?First?Out)的原則,簡稱FIFO結(jié)構(gòu)。在隊尾添加元素,在隊頭刪除元素
    2022-04-04
  • opencv利用霍夫變換檢測直線進行圖片校正

    opencv利用霍夫變換檢測直線進行圖片校正

    這篇文章主要為大家詳細介紹了opencv利用霍夫變換檢測直線對圖片進行校正,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論

伊金霍洛旗| 德清县| 宝鸡市| 香格里拉县| 宁晋县| 甘肃省| 苍南县| 封开县| 仁寿县| 泰兴市| 额济纳旗| 天长市| 洛南县| 云安县| 高安市| 会泽县| 揭阳市| 鹤峰县| 宽甸| 昌黎县| 灵寿县| 泰顺县| 邹平县| 铜陵市| 连平县| 安仁县| 高陵县| 宜宾县| 固原市| 彰武县| 石门县| 克拉玛依市| 和静县| 彰化市| 刚察县| 林芝县| 榕江县| 昆山市| 宜兴市| 洪湖市| 北安市|