重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
C語言中scanf是標(biāo)準(zhǔn)庫函數(shù),主要用來接收用戶輸入的數(shù)據(jù)。
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的夏河網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
C標(biāo)準(zhǔn)函數(shù)庫是所有符合標(biāo)準(zhǔn)的頭文件的集合,以及常用的函數(shù)庫實(shí)現(xiàn)程序,例如I/O輸入輸出和字符串控制。不像這三種COBOL、Fortran和PL/I等編程語言,在C語言的工作任務(wù)里不會(huì)包含嵌入的關(guān)鍵字,所以幾乎所有的C語言程序都是由標(biāo)準(zhǔn)函數(shù)庫的函數(shù)來創(chuàng)建的。
C語言簡介
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++、C#、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%-20%。因此,C語言可以編寫系統(tǒng)軟件。
需要準(zhǔn)備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個(gè)初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,輸入C語言代碼:
int a, b, c, d;
scanf("%d%d%d%d", a, b, c, d);
printf("%d %d %d %d", a, b, c, d);
3、編譯器運(yùn)行test.cpp文件,此時(shí)成功用scanf一次性的接收了a、b、c、d4個(gè)數(shù)字。
scanf 函數(shù)最主要的用法是:
scanf("輸入控制符", 輸入?yún)?shù));
函數(shù)原型:int?scanf(const?char?*?restrict?format,...);
函數(shù) scanf() 是從標(biāo)準(zhǔn)輸入流stdin (標(biāo)準(zhǔn)輸入設(shè)備,一般指向鍵盤)中讀內(nèi)容的通用子程序,可以說明的格式讀入多個(gè)字符,并保存在對(duì)應(yīng)地址的變量中。
擴(kuò)展資料:
函數(shù)的第一個(gè)參數(shù)是格式字符串,它指定了輸入的格式,并按照格式說明符解析輸入對(duì)應(yīng)位置的信息并存儲(chǔ)于可變參數(shù)列表中對(duì)應(yīng)的指針?biāo)肝恢谩C恳粋€(gè)指針要求非空,并且與字符串中的格式符一一順次對(duì)應(yīng)。
發(fā)展:
使用scanf函數(shù)進(jìn)行輸入,必須指定輸入的數(shù)據(jù)的類型和格式,不僅繁瑣復(fù)雜,而且很容易出錯(cuò)。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環(huán)境下運(yùn)行。C++的編程人員都愿意使用cin進(jìn)行輸入,很少使用scanf。
但是scanf有一個(gè)明顯的優(yōu)點(diǎn),速度比cin函數(shù)快。
參考資料:
百度百科-scanf (計(jì)算機(jī)語言函數(shù))
scanf 函數(shù)最主要的用法是:
scanf("輸入控制符", 輸入?yún)?shù));
功能:將從鍵盤輸入的字符轉(zhuǎn)化為“輸入控制符”所規(guī)定格式的數(shù)據(jù),然后存入以輸入?yún)?shù)的值為地址的變量中。
用scanf()函數(shù)以%s格式讀入的數(shù)據(jù)不能含有空白符時(shí),所有空白符都被當(dāng)做數(shù)據(jù)結(jié)束的標(biāo)志。所以題中函數(shù)輸出的值只有空格前面的部分。
如果想要輸出包括空格在內(nèi)的所有數(shù)據(jù),可以使用gets()函數(shù)讀入數(shù)據(jù)。gets()函數(shù)的功能是讀取字符串,并存放在指定的字符數(shù)組中,遇到換行符或文件結(jié)束標(biāo)志時(shí)結(jié)束讀入。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為字符串結(jié)束標(biāo)志'\0'。
擴(kuò)展資料:
使用scanf()函數(shù)需要注意的問題:
1.對(duì)于字符串?dāng)?shù)組或字符串指針變量,由于數(shù)組名可以轉(zhuǎn)換為數(shù)組和指針變量名本身就是地址,因此使用scanf()函數(shù)時(shí),不需要在它們前面加上""操作符。
2.可以在格式化字符串中的"%"各格式化規(guī)定符之間加入一個(gè)整數(shù),表示任何讀操作中的最大位數(shù)。
3.scanf函數(shù)中沒有類似printf的精度控制。
如:scanf("%5.2f",a); 是非法的。不能企圖用此語句輸入小數(shù)為2位的實(shí)數(shù)。
4.scanf中要求給出變量地址,如給出變量名則會(huì)出錯(cuò)
如:scanf("%d",a);是非法的,應(yīng)改為scanf("%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)為所有輸入的字符均為有效字符。
參考資料:
百度百科-scanf()函數(shù)
百度百科-gets()函數(shù)