中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

C語言庫函數getchar()怎么使用

發布時間:2022-07-28 11:12:40 來源:億速云 閱讀:122 作者:iii 欄目:開發技術

今天小編給大家分享一下C語言庫函數getchar()怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

getchar()的描述以及用法

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

* 回車鍵也算一個字符,放在緩沖區中(后面會在VS調試監視出給大家看)*

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

int getchar(void)

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

案例

基礎的例子就不列舉了,來說說今天刷C語言題目遇到的一個題目

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

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;
}

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

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;
}

此時運行結果如下:

C語言庫函數getchar()怎么使用

運行出來為啥和我想的不一樣,不應該輸入一個只判斷一次嗎?怎么又進了一次循環并自動判斷為false輸入NO了?然后我開始調試。

這是輸入了a之后跳出了第一次循環

C語言庫函數getchar()怎么使用

然后我按F10程序繼續跑了,進入了第二次循環并直接運行了else后的語句

C語言庫函數getchar()怎么使用

此時我才發現變量a的值發生了變化,變成了'\n',我才意識到鍵盤錄入按回車結束時,回車也算作一個字符'\n'被留在了緩沖區,所以進行了第二次判斷字符&lsquo;\n&rsquo;,則輸出NO,這時候我才了解到getchar()函數在這里使用的好處了,所以我對代碼進行了更改

C語言庫函數getchar()怎么使用

此時程序重新運行

C語言庫函數getchar()怎么使用

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

圖文解釋

C語言庫函數getchar()怎么使用

因為scanf把\n前面的字符讀取了,此時緩沖區還剩下'\n',所以在代碼中加入一條getchar()將'\n'做清除,方便后續程序的正常進行。

以上就是“C語言庫函數getchar()怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

临安市| 全南县| 永嘉县| 昌都县| 长兴县| 柞水县| 阜阳市| 永仁县| 四子王旗| 华阴市| 九江市| 贺兰县| 瑞金市| 芦山县| 宁陕县| 会宁县| 田东县| 湘潭市| 石屏县| 云浮市| 德庆县| 桂阳县| 青川县| 茂名市| 怀宁县| 麦盖提县| 肃北| 达孜县| 惠水县| 青州市| 土默特右旗| 中江县| 海林市| 长寿区| 敦化市| 新平| 大冶市| 鹿泉市| 新宁县| 尚义县| 泸溪县|