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