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