getchar()和getch()的区别
? ? ?getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回
?
詳解:
? ? ?getchar 由宏實現:#define getchar() getc(stdin)。getchar有一個int型的返回值.當程序調用getchar時.程序就等著用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區中.直到用戶按回車為止(回車字符也放在緩沖區中).當用戶鍵入回車之后,getchar才開始從stdio流中每次讀入一個字符.getchar函數的返回值是用戶輸入的第一個字符的ASCⅡ碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待后續getchar調用讀取.也就是說,后續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字符,直到緩沖區中的字符讀完為后,才等待用戶按鍵.
? ? ? ? ?getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回,getch返回值是用戶輸入的ASCⅡ碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用于程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然后用getch函數暫停程序運行,當按任意鍵后程序繼續運行.
?
測試一下(VS2008):
?
?
1 #include <iostream> 2 #include <conio.h> 3 using namespace std; 4 int main() 5 { 6 int n = -1; 7 n = getch(); 8 switch(n) 9 { 10 case '0': 11 cout<<"你按了數字0"<<endl; 12 break; 13 case '1': 14 cout<<"你按了數字1"<<endl; 15 break; 16 case '2': 17 cout<<"你按了數字2"<<endl; 18 break; 19 default: 20 cout<<"default:"<<endl; 21 } 22 return 0; 23 }?
此段文字摘自百度百科:http://baike.baidu.com/link?url=VmZfhgRdKceFbJeuTBZ9VrKt8KsUer5Z9UoNOIIX1VdiWkW488h_0Fe21ZD8spTM
?
轉載于:https://www.cnblogs.com/analyze/p/3272250.html
總結
以上是生活随笔為你收集整理的getchar()和getch()的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Why NoSQL?
- 下一篇: 通过 ANE(Adobe Native