3.3 常用輸入格式符表中格式符的意義
d 輸入十進(jìn)制形式的整型數(shù)據(jù)
O 以人進(jìn)制形式輸入整型數(shù)據(jù)
X 以十六進(jìn)制形式輸入整型數(shù)據(jù)
C 輸入字符數(shù)據(jù)
S 輸入字符串
e,f 輸入實(shí)型數(shù)據(jù)
說(shuō)明:
(1)格式控制字符率之后給出的是變量地址,而不是變量名(除非是指針)。如要為整型變量n輸入數(shù)據(jù),寫(xiě)成
scanf(”%d", n)是不正確的,應(yīng)寫(xiě)成 scanf(”% d”,&n)
(2)如果在格式控制字符串中除格式轉(zhuǎn)換說(shuō)明和空白符之外,還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。例如,
scanf(”%d, %d’’,&i, &j)
則在為i,j輸入數(shù)據(jù)時(shí),緊接在第一個(gè)整型數(shù)據(jù)之后,需要有一個(gè)逗號(hào)字符,如輸入
1,2
是正確的;而輸入
1 2
等其它形式都是不正確的。
(3)在用”%c ”格式轉(zhuǎn)換說(shuō)明輸入字符時(shí),空白類(lèi)字符和用轉(zhuǎn)義字符表示的字符都能作為有效字符輸入。要輸入一串空白類(lèi)字符之后的第一個(gè)非空白類(lèi)字符,可采用格式”% C”。格式字符率中的空格符使輸入跳過(guò)空白類(lèi)字符到第一個(gè)非空白類(lèi)字符,然后被C格式輸入。
(4)為整型變量輸入整數(shù)時(shí),若變量類(lèi)型為短整型,則必須在格式符之前加長(zhǎng)度修飾說(shuō)明h;若變量類(lèi)型為長(zhǎng)整型,則必須在格式符之前加長(zhǎng)度修飾說(shuō)明1。
(5)輸入數(shù)值數(shù)據(jù)時(shí),輸入字符流中的前導(dǎo)空白類(lèi)字符會(huì)被自動(dòng)跳過(guò),從空白類(lèi)字符后的數(shù)值數(shù)據(jù)字符開(kāi)始輸入。構(gòu)成數(shù)值數(shù)據(jù)的字符被輸入轉(zhuǎn)換成計(jì)算機(jī)的內(nèi)部表示,并存儲(chǔ)結(jié)果。
若第一個(gè)非空白類(lèi)字符不能構(gòu)成數(shù)值字符,則立即結(jié)束輸入。
(6)S格式用來(lái)輸入字符串,對(duì)應(yīng)的變量地址為字符列表(數(shù)組)的首地址,該數(shù)組必須大到足以容納可能輸入的最長(zhǎng)字符串。在輸入字符流中,跳過(guò)前導(dǎo)的空白類(lèi)字符,以非空白類(lèi)字符開(kāi)始,以后隨的第一個(gè)空白類(lèi)字符結(jié)束的非空白類(lèi)字符的字符序列作為一個(gè)字符串。scanf()函數(shù)在輸入的字符序列之后自動(dòng)添加字符率結(jié)束標(biāo)記符'\0'(因此,存儲(chǔ)輸入字符序列的字符數(shù)組的長(zhǎng)度必須比實(shí)際最長(zhǎng)字符串的字符數(shù)多1)。
(7)e,f格式用未輸入實(shí)數(shù),對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)地址為實(shí)型數(shù)據(jù)存儲(chǔ)地址。如格式轉(zhuǎn)換說(shuō)明中含有長(zhǎng)度修飾說(shuō)明1,則為double型變量地址;若無(wú)長(zhǎng)度修飾說(shuō)明,則為float型變量地址。輸入數(shù)據(jù)的字符序列是由正負(fù)號(hào)(可有可無(wú))、十進(jìn)制數(shù)字串、帶小數(shù)點(diǎn)的小數(shù)部分(可有可無(wú))。以e或E開(kāi)頭的指數(shù)部分(可有可無(wú))組成。
(8)在跳過(guò)前導(dǎo)空白符后,正在輸入數(shù)值數(shù)據(jù)和字符串時(shí),遇以下情況,就認(rèn)為該數(shù)據(jù)結(jié)束:
·遇空白類(lèi)字符:空白符、制表符、換行符。
·已讀人由有效字符數(shù)所指定的字符數(shù)。如”%4d多至4個(gè)數(shù)字符。
·對(duì)于輸入數(shù)值數(shù)據(jù),下一個(gè)字符不能構(gòu)成正確的數(shù)據(jù)格式。如
scanf(”%d%C%f,&i,&c,&x)
假定變量i,c,x分別為int型、char型和float型。若輸入字符列為:
123a123x. 26
則變量i為123,變量c為字符a,變量x為123.0。
(9)輸入數(shù)據(jù)時(shí),將字符流轉(zhuǎn)換成內(nèi)部表示后,存儲(chǔ)到對(duì)應(yīng)變量中。例如,
scanf(”%3d%*4d%d”,&i, &j)
如輸入字符行為
123456 78
將使變量i=123,j=78。其中數(shù)據(jù)456因賦值抑制符*的作用被跳過(guò)。一般從鍵盤(pán)讀入數(shù)據(jù),不指定輸入數(shù)據(jù)項(xiàng)的有效字符數(shù),數(shù)據(jù)項(xiàng)與數(shù)據(jù)項(xiàng)之間用空白符,或制表符,或回車(chē)符分隔。
4.格式輸出函數(shù)
格式輸出函數(shù)printf()的作用是將輸出項(xiàng)接指定的格式排版輸出到標(biāo)準(zhǔn)設(shè)備上(通常是終端顯示屏)。調(diào)用printf()函數(shù)的一般形式為
printf(格式控制字符串,表達(dá)式,表達(dá)式,……)
其中格式控制字符率是字符串表達(dá)式,通常是由用一對(duì)雙引號(hào)括起來(lái)的字符串常量。它包含三類(lèi)字符:普通字符、轉(zhuǎn)義字符和格式轉(zhuǎn)換說(shuō)明,它們的作用分別如下:
(l)普通字符,要求按原樣輸出。
(2)轉(zhuǎn)義字符,要求技轉(zhuǎn)義字符的意義輸出,如’\n’,表示輸出時(shí)回車(chē)換行,’\b’表示退格等。
(3)格式轉(zhuǎn)換說(shuō)明,以字符%開(kāi)頭至格式符結(jié)束的字符列組成,其一般形式為
%[-」「+」「」[#」「W][.p][h/l/L]輸出格式符
其中用方括號(hào)括住的內(nèi)容是格式修飾說(shuō)明,可以缺省(不出現(xiàn)),如"%d"、"% 7.5f"等。每個(gè)格式轉(zhuǎn)換說(shuō)明對(duì)應(yīng)一個(gè)輸出項(xiàng),輸出項(xiàng)可以是常量、變量或表達(dá)式。格式轉(zhuǎn)換說(shuō)明的作用是將對(duì)應(yīng)輸出項(xiàng)的內(nèi)容按格式符要求產(chǎn)生出字符列,并按格式修飾說(shuō)明排版輸出。
輸出格式符共有16個(gè),有12種不同的格式,考試大綱只要求掌握表3.2所列的九種。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |