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

C語(yǔ)言庫(kù)函數(shù)getchar()新見解

 更新時(shí)間:2022年07月22日 16:13:01   作者:it_NunU  
用getchar()函數(shù)讀取字符串時(shí),字符串會(huì)存儲(chǔ)在輸入緩沖區(qū)中,包括輸入的回車字符,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中g(shù)etchar()的用法以及案例的相關(guān)資料,需要的朋友可以參考下

getchar()的描述以及用法

getchar()是stdio.h中的庫(kù)函數(shù),它的作用是從緩沖區(qū)中讀取一個(gè)字符,如果緩沖區(qū)中沒有字符可供讀取,它就會(huì)等待終端鍵盤輸入字符,按回車鍵表示輸入結(jié)束。

* 回車鍵也算一個(gè)字符,放在緩沖區(qū)中(后面會(huì)在VS調(diào)試監(jiān)視出給大家看)*

下面是 getchar() 函數(shù)的聲明:

int getchar(void)

該函數(shù)的返回類型是int類型,返回值是用戶輸入字符的ASCII碼值。

案例

基礎(chǔ)的例子就不列舉了,來(lái)說(shuō)說(shuō)今天刷C語(yǔ)言題目遇到的一個(gè)題目

判斷輸入的是否是字母(簡(jiǎn)單的題目)

int main()
{
    char a = '0';
    scanf("%c", &a);
    if (a >= 'a' && a <= 'z' || a >= 'A' && a <= 'Z')
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}

直接判斷就可以了,但是我想著可不可以實(shí)現(xiàn)多組輸入,輸入一個(gè)字符判斷一個(gè)字符(雖然題目沒說(shuō)到)于是我就嘗試寫了如下代碼

int main()
{
    char a = '0';
    while (scanf("%c", &a) != EOF)
    {
        if (a >= 'a' && a <= 'z' || a >= 'A' && a <= 'Z')
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

此時(shí)運(yùn)行結(jié)果如下:

運(yùn)行出來(lái)為啥和我想的不一樣,不應(yīng)該輸入一個(gè)只判斷一次嗎?怎么又進(jìn)了一次循環(huán)并自動(dòng)判斷為false輸入NO了?然后我開始調(diào)試。

這是輸入了a之后跳出了第一次循環(huán)

然后我按F10程序繼續(xù)跑了,進(jìn)入了第二次循環(huán)并直接運(yùn)行了else后的語(yǔ)句

此時(shí)我才發(fā)現(xiàn)變量a的值發(fā)生了變化,變成了'\n',我才意識(shí)到鍵盤錄入按回車結(jié)束時(shí),回車也算作一個(gè)字符'\n'被留在了緩沖區(qū),所以進(jìn)行了第二次判斷字符‘\n’,則輸出NO,這時(shí)候我才了解到getchar()函數(shù)在這里使用的好處了,所以我對(duì)代碼進(jìn)行了更改

此時(shí)程序重新運(yùn)行

要想再次使用scanf就要在這里調(diào)用getchar()把緩沖區(qū)的 '\n' 給拿走,才能完成多組輸入字符的判斷

圖文解釋

因?yàn)閟canf把\n前面的字符讀取了,此時(shí)緩沖區(qū)還剩下'\n',所以在代碼中加入一條getchar()將'\n'做清除,方便后續(xù)程序的正常進(jìn)行。

總結(jié)

以上就是我對(duì)getchar()部分理解,希望對(duì)大家有幫助,有待改進(jìn)的地方希望大家隨時(shí)指出!

到此這篇關(guān)于C語(yǔ)言庫(kù)函數(shù)getchar()新見解的文章就介紹到這了,更多相關(guān)C語(yǔ)言 getchar()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目管理

    C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目管理

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • javascript 兩種聲明函數(shù)的方式的分析

    javascript 兩種聲明函數(shù)的方式的分析

    這篇文章主要介紹了javascript 兩種聲明函數(shù)的方式的分析的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • C++實(shí)現(xiàn)秒表功能

    C++實(shí)現(xiàn)秒表功能

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)秒表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C/C++預(yù)處理淺析使用形式

    C/C++預(yù)處理淺析使用形式

    預(yù)處理是指在進(jìn)行編譯的詞法掃描和語(yǔ)法分析之前所作的工作。預(yù)處理指令指示在程序正式編譯前就由編譯器進(jìn)行的操作,可放在程序中任何位置。處理完畢自動(dòng)進(jìn)入對(duì)源程序的編譯。C/C++中的預(yù)處理主要包含三種:文件包含、宏定義、條件編譯
    2022-09-09
  • 用typedef定義類型的總結(jié)分析

    用typedef定義類型的總結(jié)分析

    除了可以直接使用C提供的標(biāo)準(zhǔn)類型名(如:int ,char ,float,double,long等)和自己聲明的結(jié)構(gòu)體、共用體、枚舉類型外,還可以使用typedef聲明 新的類型名 來(lái)代替 已有的 類型名
    2013-08-08
  • win10環(huán)境下vscode Linux C++開發(fā)代碼自動(dòng)提示配置(基于WSL)

    win10環(huán)境下vscode Linux C++開發(fā)代碼自動(dòng)提示配置(基于WSL)

    這篇文章主要介紹了win10環(huán)境下vscode Linux C++開發(fā)代碼自動(dòng)提示配置(基于WSL),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 淺談C++的淺拷貝出現(xiàn)的錯(cuò)誤

    淺談C++的淺拷貝出現(xiàn)的錯(cuò)誤

    下面小編就為大家?guī)?lái)一篇淺談C++的淺拷貝出現(xiàn)的錯(cuò)誤。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-01-01
  • VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換

    VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換

    這篇文章主要介紹了VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換的方法,非常的詳細(xì),有需要的小伙伴可以參考下,希望對(duì)大家學(xué)習(xí)VC能夠有所幫助。
    2015-11-11
  • C++ 將數(shù)據(jù)轉(zhuǎn)為字符串的幾種方法

    C++ 將數(shù)據(jù)轉(zhuǎn)為字符串的幾種方法

    這篇文章主要介紹了C++ 將數(shù)據(jù)轉(zhuǎn)為字符串的幾種方法,十分的實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • C語(yǔ)言清楚了解指針的使用

    C語(yǔ)言清楚了解指針的使用

    C語(yǔ)言這門課程在計(jì)算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語(yǔ)言的學(xué)習(xí),對(duì)指針的掌握是非常重要的,本文將具體針對(duì)指針的基礎(chǔ)做詳盡的介紹
    2022-06-06

最新評(píng)論

西乡县| 红河县| 宜城市| 荆州市| 高安市| 阳春市| 临猗县| 顺平县| 岑巩县| 陵水| 昌黎县| 永清县| 石嘴山市| 横峰县| 闽清县| 古交市| 丹巴县| 金堂县| 长子县| 比如县| 博白县| 武隆县| 京山县| 田林县| 清水河县| 贵州省| 唐海县| 慈利县| 临洮县| 葵青区| 卓尼县| 怀仁县| 逊克县| 阳城县| 福海县| 安龙县| 信丰县| 岳阳市| 浮山县| 南昌县| 吉安市|