當程序調用getchar時,程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤緩沖區中。直到用戶按回車為止。
當用戶鍵入回車之后,getchar才開始從stdin流中每次讀入一個字符。getchar函數的返回值是用戶輸入的字符的ASCII碼,若文件結尾則返回-1(EOF),且將用戶輸入的字符回顯到屏幕。
如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待后續getchar調用讀取。
也就是說,后續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字符,直到緩沖區中的字符讀完后,才等待用戶按鍵。
拓展資料
getchar()是stdio.h中的庫函數,它的作用是從stdin流中讀入一個字符,也就是說,如果stdin有數據的話不用輸入它就可以直接讀取了,第一次調用getchar()時,確實需要人工的輸入,但是如果你輸了多個字符,以后的getchar()再執行時就會直接從緩沖區中讀取了。
C庫函數intgetchar(void)從標準輸入stdin獲取一個字符(一個無符號字符)。這等同于getc帶有stdin作為參數。
該函數以無符號char強制轉換為int的形式返回讀取的字符,如果到達文件末尾或發生讀錯誤,則返回EOF。