gets、scanf和getchar之間的區別


gets

 

 gets、scanf和getchar之間的區別 

1、 gets函數讀取數據時,接受的數據包括數據和回車符。即:讀取數據后輸入流沒有輸入 操作動作。 

2、 scanf函數讀取數據時,接受的數據只有數據,不包括回車符。即:讀取數據后輸入流 還存在回車符操作動作。 

3、 getchar函數讀取一個字符數據時,接受的數據只有一個字符,不包括回車符。即: 讀取一個字符數據后就默認輸入數據結束。讀取數據后輸入流還存在回車符操作動作。

 

 

 

 

gets(s)函數與scanf("%s:",&s)/* scanf("%s",s)*/相似,但不完全相同,使用scanf("%s",&s);函數輸入字符串時存在一個問題,就是如果輸入了空格會認為字符串結束,空格后的字符將作為下一個輸入項處理,但gets()函數將接收輸入的整個字符串直到遇到換行為止。

void main() { char str1[5]; gets(str1); printf("%s\n",str1); }

 

 

getch與getchar       getchar有一個int型的返回值.當程序調用getchar時.程序就等着用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區中.直到用戶按回車為止(回車字符也放在緩沖區中).       getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回, getch返回值是用戶輸入的ASCII碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用於程序調試中,在調試時,在關鍵位置顯示有關的結果以待查看,然后用getch函數暫停程序運行,當按任意鍵后程序繼續運行.

       getchar(),這個函數與前兩上類似,功能也相近,都是輸入一個字符,返回值同樣是輸入字符的ASCII碼,但不同的是,此函數在輸入后立即從控制台取字符,不以回車為結束(帶回顯)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM