getchar 由宏實現:#define getchar() 。
getchar(stdin)語句功能:getchar有一個int型的返回值,當程序調用getchar時,程序就等着用戶按鍵,用戶輸入的字符被存放在鍵盤緩沖區中,直到用戶按回車為止(回車字符也放在緩沖區中)。
當用戶鍵入回車之后,getchar才開始從stdin流中每次讀入一個字符,getchar函數的返回值是用戶輸入的第一個字符的ASCII碼。
如出錯返回-1,且將用戶輸入的字符回顯到屏幕,如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待后續getchar調用讀取。
也就是說,后續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字符,直到緩沖區中的字符讀完為后,才等待用戶按鍵。
示例:
#include<stdio.h>
void main()
{
char c;//定義一個字符
printf("input a character\n");
c=getchar(); //從鍵盤獲取一個字符
putchar(c);//輸出字符
}
補充再說一下,也是重點:
直到用戶按回車為止(回車字符也放在緩沖區中)。當用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個字符。划重點!!!getchar函數的返回值是用戶輸入的字符的ASCII碼,若文件結尾(End-Of-File)則返回-1(EOF),且將用戶輸入的字符回顯到屏幕。
轉載於:https://zhidao.baidu.com/question/16706880.html的熱心網友回答
最后附上一張今天學習用到的ASCII碼表,如下:

圖片摘自百度百科:https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii碼表&fromid=19660475&fr=aladdin
