作為一種古老的編程語(yǔ)言,C語(yǔ)言已經(jīng)發(fā)展了數(shù)十年。對(duì)于軟件開發(fā)的初學(xué)者從C語(yǔ)言基礎(chǔ)課程開始,到C語(yǔ)言的深度學(xué)習(xí)。不管別人如何批評(píng)和唱衰,C語(yǔ)言發(fā)展至今仍然在是編程語(yǔ)言當(dāng)中屹立不倒的。 Java,C#,Python,PHP,Perl等都有其他選擇,它們都可以使用其他語(yǔ)言來代替,但是C語(yǔ)言不能,因?yàn)镃語(yǔ)言是編程語(yǔ)言的始祖。那么c語(yǔ)言如何定義變量?c語(yǔ)言的輸入函數(shù)有哪些?
c語(yǔ)言如何定義變量?
C語(yǔ)言中定義變量的格式非常簡(jiǎn)單,如下:
數(shù)據(jù)類型變量名;
注意:最后的分號(hào)千萬不要丟了。變量的定義是一個(gè)語(yǔ)句,而語(yǔ)句都是以分號(hào)結(jié)尾的。
“數(shù)據(jù)類型”表示想要存儲(chǔ)什么類型的數(shù)據(jù)就定義什么類型的變量。想要存儲(chǔ)整數(shù)就定義成int型;想要存儲(chǔ)小數(shù)就定義成float型或double型。
“變量名”就是你想給這個(gè)變量起個(gè)什么名字,通常都是用字母。比如:
inti;
上面的語(yǔ)句就表示定義了一個(gè)整型變量i。
c語(yǔ)言的輸入函數(shù)有哪些?
1、scanf的返回值
scanf()函數(shù)返回成功賦值的數(shù)據(jù)項(xiàng)數(shù),讀到文件末尾出錯(cuò)時(shí)則返回EOF。
如:
scanf("%d%d",&a,&b);
如果a和b都被成功讀入,那么scanf的返回值就是2。
如果只有a被成功讀入,返回值為1。
如果a和b都未被成功讀入,返回值為0。
如果遇到錯(cuò)誤或遇到endoffile,返回值為EOF。
且返回值為int型
空白符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符。
非空白符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。
使用scanf函數(shù)時(shí)應(yīng)該注意的事項(xiàng)
1)對(duì)于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名和指針變量名本身就是地址,因此使用scanf()函數(shù)時(shí),不需要在它們前面加上"&"操作符。
2)可以在格式化字符串中的"%"各格式化規(guī)定符之間加入一個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。
3)scanf()函數(shù)中沒有精度控制。
如:scanf("%5.2f",&a);是非法的。不能企圖用此語(yǔ)句輸入小數(shù)為2位的實(shí)數(shù)。
4)scanf中要求給出變量地址,如給出變量名則會(huì)出錯(cuò)。
如scanf("%d",a);是非法的,應(yīng)改為scnaf("%d",&a);才是合法的。
5)在輸入多個(gè)數(shù)值數(shù)據(jù)時(shí),若格式控制串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如對(duì)“%d”輸入“12A”時(shí),A即為非法數(shù)據(jù))時(shí)即認(rèn)為該數(shù)據(jù)結(jié)束。
6)在輸入字符數(shù)據(jù)(%c)時(shí),若格式控制串中無非格式字符,則認(rèn)為所有輸入的字符均為有效字符。
7)如果格式控制串中有非格式字符則輸入時(shí)也要輸入該非格式字符。
2、getchar
getchar有一個(gè)int型的返回值。當(dāng)程序調(diào)用getchar時(shí).程序就等著用戶按鍵。用戶輸入的字符被存放在鍵盤緩沖區(qū)中。直到用戶按回車為止(回車字符也放在緩沖區(qū)中)。當(dāng)用戶鍵入回車之后,getchar才開始從stdin流中每次讀入一個(gè)字符。getchar函數(shù)的返回值是用戶輸入的第一個(gè)字符的ASCII碼,如出錯(cuò)返回-1,且將用戶輸入的字符回顯到屏幕。如用戶在按回車之前輸入了不止一個(gè)字符,其他字符會(huì)保留在鍵盤緩存區(qū)中,等待后續(xù)getchar調(diào)用讀取。也就是說,后續(xù)的getchar調(diào)用不會(huì)等待用戶按鍵,而直接讀取緩沖區(qū)中的字符,直到緩沖區(qū)中的字符讀完為后,才等待用戶按鍵。
3、getch
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待用戶按回車,只要用戶按一個(gè)鍵,getch就立刻返回,getch返回值是用戶輸入的ASCII碼,出錯(cuò)返回-1。輸入的字符不會(huì)回顯在屏幕上。getch函數(shù)常用于程序調(diào)試中,在調(diào)試時(shí),在關(guān)鍵位置顯示有關(guān)的結(jié)果以待查看,然后用getch函數(shù)暫停程序運(yùn)行,當(dāng)按任意鍵后程序繼續(xù)運(yùn)行。
4、gets
功能:從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在buffer指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為null值,并由此來結(jié)束字符串。
返回值:讀入成功,返回與參數(shù)buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發(fā)生錯(cuò)誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數(shù)檢查是發(fā)生錯(cuò)誤還是遇到EOF。
上述就是關(guān)于c語(yǔ)言如何定義變量,以及c語(yǔ)言的輸入函數(shù)有哪些的全部?jī)?nèi)容介紹,想了解更多關(guān)于c語(yǔ)言的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。