c語(yǔ)言如何使用getchar函數(shù)獲取字符并賦值ch?
getchar 由宏實(shí)現(xiàn):#define getchar() 。
getchar(stdin)語(yǔ)句功能:getchar有一個(gè)int型的返回值,當(dāng)程序調(diào)用getchar時(shí),程序就等著用戶按鍵,用戶輸入的字符被存放在鍵盤(pán)緩沖區(qū)中,直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。
當(dāng)用戶鍵入回車之后,getchar才開(kāi)始從stdin流中每次讀入一個(gè)字符,getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼。
如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕,如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤(pán)緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。
也就是說(shuō),后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵。
示例:
#include<stdio.h>
void main()
{
char c;//定義一個(gè)字符
printf("input a character\n");
c=getchar(); //從鍵盤(pán)獲取一個(gè)字符
putchar(c);//輸出字符
}
擴(kuò)展資料:
getchar
getchar由宏實(shí)現(xiàn):#define getchar() getc(stdin)。getchar有一個(gè)int型的返回值。當(dāng)程序調(diào)用getchar時(shí).程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤(pán)緩沖區(qū)中。
直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。當(dāng)用戶鍵入回車之后,getchar才開(kāi)始從stdio流中每次讀入一個(gè)字符。getchar函數(shù)的返回值是用戶輸入的字符的ASCII碼,若文件結(jié)尾(End-Of-File)則返回-1(EOF),且將用戶輸入的字符回顯到屏幕。
如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤(pán)緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說(shuō),后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完后,才等待用戶按鍵。
getch
getch與getchar基本功能相同,差別是getch直接從鍵盤(pán)獲取鍵值,不等待用戶按回車,只要用戶按一個(gè)鍵,getch就立刻返回,getch返回值是用戶輸入的ASCⅡ碼,出錯(cuò)返回-1。
輸入的字符不會(huì)回顯在屏幕上.getch函數(shù)常用于程序調(diào)試中,在調(diào)試時(shí),在關(guān)鍵位置顯示有關(guān)的結(jié)果以待查看,然后用getch函數(shù)暫停程序運(yùn)行,當(dāng)按任意鍵后程序繼續(xù)運(yùn)行。
getche
這個(gè)函數(shù)與前兩上類似,功能也相近,都是輸入一個(gè)字符,返回值同樣是輸入字符的ASCII碼,但不同的是,此函數(shù)在輸入后立即從控制臺(tái)取字符,不以回車為結(jié)束(帶回顯)。