getchar的使用方法與用途
getchar的使用方法與用途
getchar從標(biāo)準(zhǔn)輸入里讀取下一個(gè)字符,返回值為用戶輸入的ASCⅡ碼,出錯(cuò)返回-1。那么getchar是如何使用的呢?以下是由學(xué)習(xí)啦小編整理關(guān)于getchar的用法的內(nèi)容,希望大家喜歡!
getchar的用法
一種就是清空回車符 這種情況一般發(fā)生在在循環(huán)中涉及到輸入的情況 ,還有一種是某些編譯平臺(tái)(IDE)在運(yùn)行程序時(shí)并沒有在程序運(yùn)行后給人看結(jié)果的時(shí)間 這時(shí)候 在程序最后加上getchar()就能造成程序的暫停 給程序員度結(jié)果的機(jī)會(huì)。
注意:
用getchar時(shí),在鍵盤上按一個(gè)字符后,要按回車才能讀取進(jìn)去;用getch時(shí),在鍵盤上按一個(gè)字符馬上就被讀取進(jìn)去,不用按回車,因此可以作為“按任意鍵繼續(xù)”的執(zhí)行語句。
getchar 的用途
是從從標(biāo)準(zhǔn)輸入流讀取一個(gè)字符,讀回車符時(shí)退出
getchar();永遠(yuǎn)只向緩存中輸入一個(gè)字符。
getchar的注解
getchar 由宏實(shí)現(xiàn):#define getchar() getc(stdin)。getchar有一個(gè)int型的返回值.當(dāng)程序調(diào)用getchar時(shí).程序就等著用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區(qū)中.直到用戶按回車為止(回車字符也放在緩沖區(qū)中).當(dāng)用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個(gè)字符.getchar函數(shù)的返回值是用戶輸入的字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取.也就是說,后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵.
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個(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)行.
這個(gè)版本忽略了個(gè)重點(diǎn),getch()是非緩沖輸入函數(shù),就是不能用getch()來接受緩沖區(qū)已存在的字符,如以下C++程序,
int i;while(cin>>i);cin.clear();getchar();運(yùn)行時(shí)如果輸入1 2 3 a時(shí)必須用getchar()才能在后面程序獲得正常輸入,即使先前已經(jīng)恢復(fù)流了,此處用getch()是萬萬不行的。
另外補(bǔ)充個(gè)函數(shù),getche(),這個(gè)函數(shù)與前兩上類似,功能也相近,都是輸入一個(gè)字符,返回值同樣是輸入字符的ASCII碼,但不同的是,此函數(shù)在輸入后立即從控制臺(tái)取字符,不以回車為結(jié)束(帶回顯)
看過“getchar的使用方法與用途”的人還看了: