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碼,但不同的是,此函數在輸入后立即從控制台取字符,不以回車為結束(帶回顯)