0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

getchar()函數(shù)詳解

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:Jambo! ? 2023-01-22 16:57 ? 次閱讀

getchar()

getchar的定義:

int getchar(void)

返回類型是int值,所以返回的是字符的ASCII碼

參數(shù)列表中是void,所以不必在括號中傳參數(shù)

如果getchar讀取失敗,就會返回EOF

getchar()的一個重要機制

在getchar函數(shù)的作用與鍵盤間,存在一個輸入緩沖區(qū),從鍵盤輸入的內(nèi)容會存在這個緩沖中,接下來getchar函數(shù)會從緩沖區(qū)中取走內(nèi)容

因為getchar是對于字符進行操作,所以每次執(zhí)行g(shù)etchar都會取走輸入緩沖區(qū)中一個字符

并且getchar還會取走回車也就是\\n與空格

我們用下面的代碼進行對輸入緩沖區(qū)機制的測試:

int main()

{

char ch = 0;

while ((ch = getchar()) != EOF)

{

putchar(ch);

}

return 0;

}

1

2

3

4

5

6

7

8

9

當(dāng)輸入一個字符a時,同時我們會按下回車,此時輸入緩沖區(qū)中就有兩個字符:a\\n

首先,getchar()會先取走字符a,然后通過putchar打印出來

接著循環(huán),getchar()取走字符\\n,然后通過putchar打印出來,所以在輸出中光標不在輸出的a的后面,而在a的下一行

image.png

接著,輸入緩沖區(qū)中以無內(nèi)容,getchar()就會讀到EOF,退出循環(huán)

還可以用以下代碼更進一步驗證getchar()對于回車的讀?。?/p>

int main()

{

int i = 0;

char ch = 0;

while ((ch = getchar()) != EOF)

{

putchar(ch);

i++;

}

printf("%d", i);

return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

輸入字符a和b,這里實際上是輸入a后,按一次回車,輸入b后,按一次回車,所以輸入緩沖區(qū)中的內(nèi)容為:a\\nb\\n,所以getchar()會讀取四次,所以i的值為會是4

原文鏈接:https://blog.csdn.net/weixin_64116522/article/details/127956631

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4341

    瀏覽量

    62799
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4808

    瀏覽量

    68810
收藏 人收藏

    評論

    相關(guān)推薦

    stm32f103rct6 prinrf可以正常使用,但是無法使用getchar和scanf函數(shù),為什么?

    已使用如下代碼重定向,prinrf可以正常使用,但是無法使用getchar和scanf函數(shù),求大佬解答 #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int
    發(fā)表于 04-09 07:47

    USART中的getchar()函數(shù)功能不能實現(xiàn)

    int fputc(int ch, FILE *f)#define GETCHAR_PROTOTYPE int fgetc(FILE *f)#endif /* __GNUC__ */和下面這兩個函數(shù)定義
    發(fā)表于 11-08 08:58

    linux getchar函數(shù)的特點與使用

    1)函數(shù)原型int getchar(void);2)函數(shù)功能從stdin中讀取一個字符。3)返回值返回讀取字符的ASCII值或者EOF字符或者出錯值。4)頭文件#include
    發(fā)表于 07-24 07:21

    getch()與getchar()函數(shù)的區(qū)別是什么?

    getch()與getchar()函數(shù)的區(qū)別是什么?
    發(fā)表于 10-14 08:31

    怎樣用printf 函數(shù)getchar 函數(shù)去簡化STM32串口數(shù)據(jù)的傳輸呢

    printf 函數(shù)getchar 函數(shù)有何功能?怎樣用printf 函數(shù)getchar 函數(shù)
    發(fā)表于 10-22 07:49

    新手求助啟用RT_USING_POSIX時getchar調(diào)用過程

    給各位大佬倒茶,想求助下在開啟RT_USING_POSIX時,串口getc()函數(shù)到系統(tǒng)getchar()函數(shù)之間的調(diào)用路徑。小弟在調(diào)試大佬編寫的的web_terminal組件時發(fā)現(xiàn)如果開啟了
    發(fā)表于 11-14 14:17

    getch與getchar的區(qū)別是什么?

    1.getchar();從鍵盤讀取一個字符并輸出,該函數(shù)的返回值是輸入第一個字符的ASCII碼;若用戶輸入的是一連串字符,函數(shù)直到用戶輸入回車時結(jié)束,輸入的字符連同回車一起存入鍵盤緩沖區(qū)。若程序中有
    發(fā)表于 06-20 08:59

    PICC庫函數(shù)詳解

    PICC庫函數(shù)詳解
    發(fā)表于 04-18 20:13 ?132次下載

    Android開發(fā)手冊—API函數(shù)詳解

    Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-17 09:01 ?13次下載
    Android開發(fā)手冊—API<b class='flag-5'>函數(shù)</b><b class='flag-5'>詳解</b>

    基于Android開發(fā)手冊—API函數(shù)詳解

    基于Android開發(fā)手冊—API函數(shù)詳解
    發(fā)表于 10-24 09:06 ?18次下載
    基于Android開發(fā)手冊—API<b class='flag-5'>函數(shù)</b><b class='flag-5'>詳解</b>

    網(wǎng)絡(luò)函數(shù)的習(xí)題與詳解詳細說明

    本文檔的主要內(nèi)容詳細介紹的是網(wǎng)絡(luò)函數(shù)的習(xí)題與詳解詳細說明。
    發(fā)表于 09-28 08:00 ?0次下載
    網(wǎng)絡(luò)<b class='flag-5'>函數(shù)</b>的習(xí)題與<b class='flag-5'>詳解</b>詳細說明

    Linux內(nèi)核GPIO操作函數(shù)詳解分析

    本文檔的主要內(nèi)容詳細介紹的是Linux內(nèi)核GPIO操作函數(shù)詳解分析免費下載。
    發(fā)表于 01-22 16:58 ?28次下載

    Android開發(fā)手冊API函數(shù)詳解資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是Android開發(fā)手冊API函數(shù)詳解資料免費下載。
    發(fā)表于 02-22 08:00 ?0次下載

    空閑任務(wù)鉤子函數(shù)詳解

    空閑任務(wù)鉤子函數(shù)詳解 1、鉤子函數(shù) FreeRTOS中有多個鉤子函數(shù),鉤子函數(shù)類似回調(diào)函數(shù),當(dāng)某
    的頭像 發(fā)表于 07-30 10:57 ?1100次閱讀
    空閑任務(wù)鉤子<b class='flag-5'>函數(shù)</b><b class='flag-5'>詳解</b>

    STM32庫函數(shù)SystemInit()詳解

    STM32庫函數(shù)SystemInit()詳解
    的頭像 發(fā)表于 09-18 15:45 ?4174次閱讀
    STM32庫<b class='flag-5'>函數(shù)</b>SystemInit()<b class='flag-5'>詳解</b>