scanf 函數(shù)最主要的用法是:
創(chuàng)新互聯(lián)是一家專業(yè)提供霍城企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為霍城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。
scanf("輸入控制符", 輸入?yún)?shù));
功能:將從鍵盤輸入的字符轉(zhuǎn)化為“輸入控制符”所規(guī)定格式的數(shù)據(jù),然后存入以輸入?yún)?shù)的值為地址的變量中。
用scanf()函數(shù)以%s格式讀入的數(shù)據(jù)不能含有空白符時,所有空白符都被當(dāng)做數(shù)據(jù)結(jié)束的標(biāo)志。所以題中函數(shù)輸出的值只有空格前面的部分。
如果想要輸出包括空格在內(nèi)的所有數(shù)據(jù),可以使用gets()函數(shù)讀入數(shù)據(jù)。gets()函數(shù)的功能是讀取字符串,并存放在指定的字符數(shù)組中,遇到換行符或文件結(jié)束標(biāo)志時結(jié)束讀入。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為字符串結(jié)束標(biāo)志'\0'。
擴(kuò)展資料:
使用scanf()函數(shù)需要注意的問題:
1.對于字符串?dāng)?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);是非法的,應(yīng)改為scanf("%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)為所有輸入的字符均為有效字符。
參考資料:
百度百科-scanf()函數(shù)
百度百科-gets()函數(shù)
我們平時從鍵盤輸入的字符都會存到緩存區(qū)里面,包括回車字符,getchar是從緩存區(qū)讀入一個字符,用法是ch=getchar();如果想要去除緩存區(qū)里面的字符,那么就不用賦值,直接getchar();scanf并不針對
于單
個的字符處理,還可以讀入數(shù)據(jù)和字符串,且scanf("%c",ch)等價于ch=getchar();至于putchar(ch)則等價于printf("%c",ch);功能是輸出一個字符,要輸出的字符變量寫在括號內(nèi),如果要輸出的是
字符常量
比如說
感嘆號
則要這樣:putchar('!');希望可以幫到樓主
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)容的通用子程序,可以說明的格式讀入多個字符,并保存在對應(yīng)地址的變量中。
擴(kuò)展資料:
函數(shù)的第一個參數(shù)是格式字符串,它指定了輸入的格式,并按照格式說明符解析輸入對應(yīng)位置的信息并存儲于可變參數(shù)列表中對應(yīng)的指針?biāo)肝恢?。每一個指針要求非空,并且與字符串中的格式符一一順次對應(yīng)。
發(fā)展:
使用scanf函數(shù)進(jìn)行輸入,必須指定輸入的數(shù)據(jù)的類型和格式,不僅繁瑣復(fù)雜,而且很容易出錯。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環(huán)境下運行。C++的編程人員都愿意使用cin進(jìn)行輸入,很少使用scanf。
但是scanf有一個明顯的優(yōu)點,速度比cin函數(shù)快。
參考資料:
百度百科-scanf (計算機(jī)語言函數(shù))