十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
C語言中scanf是標準庫函數(shù),主要用來接收用戶輸入的數(shù)據(jù)。

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