您好,登錄后才能下訂單哦!
小編給大家分享一下c語言的輸入函數,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
c語言的輸入函數有:1、【scanf()】函數返回成功賦值的數據項數,讀到文件末尾出錯時則返回EOF;2、getchar有一個int型的返回值,當程序調用getchar時,程序就等著用戶按鍵。
c語言的輸入函數有:
1、scanf
的返回值
scanf()函數返回成功賦值的數據項數,讀到文件末尾出錯時則返回EOF。
如:
scanf("%d%d", &a, &b);
如果a和b都被成功讀入,那么scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為EOF
且返回值為int型
空白符:空白字符會使scanf()函數在讀操作中略去輸入中的一個或多個空白字符。
非空白符:一個非空白字符會使scanf()函數在讀入時剔除掉與這個非空白字符相同的字符。
使用scanf函數時應該注意的事項
(1) 對于字符串數組或字符串指針變量,由于數組名和指針變量名本身就是地址,因此使用scanf()函數時,不需要在它們前面加上"&"操作符。
(2) 可以在格式化字符串中的"%"各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。
(3) scanf()函數中沒有精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。
(4) scanf中要求給出變量地址,如給出變量名則會出錯
如 scanf("%d",a);是非法的,應改為scnaf("%d",&a);才是合法的。
(5) 在輸入多個數值數據時,若格式控制串中沒有非格式字符作輸入數據之間的間隔則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數據(如對“%d”輸入“12A”時,A即為非法數據)時即認為該數據結束。
(6) 在輸入字符數據(%c)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。
(7) 如果格式控制串中有非格式字符則輸入時也要輸入該非格式字符。
2、getchar
getchar有一個int型的返回值.當程序調用getchar時.程序就等著用戶按鍵.用戶輸入的字符被存放在鍵盤緩沖區中.直到用戶按回車為止(回 車字符也放在緩沖區中).當用戶鍵入回車之后,getchar才開始從stdin流中每次讀入一個字符.getchar函數的返回值是用戶輸入的第一個字 符的ASCII碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕.如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待后續 getchar調用讀取.也就是說,后續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中的字符,直到緩沖區中的字符讀完為后,才等待用戶按 鍵.
3、getch
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個鍵,getch就立刻返回, getch返回值是用戶輸入的ASCII碼,出錯返回-1.輸入的字符不會回顯在屏幕上.getch函數常用于程序調試中,在調試時,在關鍵位置顯示有關 的結果以待查看,然后用getch函數暫停程序運行,當按任意鍵后程序繼續運行
4、gets
功能:從stdin流中讀取字符串,直至接受到換行符或EOF時停止,并將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,并由此來結束字符串。
返回值:讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。
以上是c語言的輸入函數的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。