計(jì)算機(jī)二級(jí)C語言輔導(dǎo)_第三章.ppt_第1頁
計(jì)算機(jī)二級(jí)C語言輔導(dǎo)_第三章.ppt_第2頁
計(jì)算機(jī)二級(jí)C語言輔導(dǎo)_第三章.ppt_第3頁
計(jì)算機(jī)二級(jí)C語言輔導(dǎo)_第三章.ppt_第4頁
計(jì)算機(jī)二級(jí)C語言輔導(dǎo)_第三章.ppt_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章,輸入輸出函數(shù),一、字符輸入輸出操作,例如:#include ,字符標(biāo)準(zhǔn)輸入,字符標(biāo)準(zhǔn)輸出,C語言本身不提供輸入輸出語句,輸入 輸出操作是由函數(shù)實(shí)現(xiàn)的。,C語言的輸入輸出函數(shù)的處理程序不在 C語言本身,因而在運(yùn)行時(shí)要連接函數(shù)庫, 但必須在程序中將相應(yīng)的文件頭部加載。,在計(jì)算機(jī)終端鍵盤上輸入數(shù)據(jù)。,在終端顯示器上輸出數(shù)據(jù)。,二、有格式輸入輸出操作的實(shí)現(xiàn),格式輸出函數(shù)printf,格式輸入函數(shù)scanf,1、格式輸出函數(shù)printf,功能:,該函數(shù)按指定的格式輸出多個(gè)、不同類型的數(shù)據(jù)。,格式:,printf(格式控制,輸出表列) 格式控制:也稱為轉(zhuǎn)換控制字符串。它包含格式轉(zhuǎn)換說明和需原樣輸出

2、的普通字符。 輸出表列:要輸出其值的表達(dá)式表列,該表列中的參數(shù)可為多個(gè),也可沒有。 輸出列表中變量的位置、個(gè)數(shù)和類型必須與格式控制字符串中的 格式轉(zhuǎn)換說明符對(duì)應(yīng)。,普通字符的輸出,普通字符即需要原樣輸出的字符。,printf(a=%d b=%d, a, b);,普通字符,設(shè)a, b分別為3和4,則有: a=3 b=4,輸出列表舉例,“輸出表列”是需要輸出的一些數(shù)據(jù),可 以是表達(dá)式??梢杂卸囗?xiàng),也可以沒有。,printf(a=%d a+b=%d, a, a+b);,輸出表列,printf(“輸出提示信息!);,格式說明,格式說明:是從“%”開始到其后第一個(gè) 格式說明符。,格式說明符: d格式符

3、o格式符 x格式符u格式符 c格式符 s格式符 f格式符 e格式符 g格式符,(1)d格式符,功能,以帶符號(hào)的十進(jìn)制整型格式輸出整數(shù)。,格式,d 按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出,%ld l或(L)表示輸出長(zhǎng)整型數(shù)據(jù),%md 按長(zhǎng)度為m輸出整型數(shù)據(jù),不足補(bǔ)空格 %0md按長(zhǎng)度為m輸出整型數(shù)據(jù),不足補(bǔ)0.,a=123; b=12345; printf(%4d, %05d, %d, a, a, b); 123, 00123, 12345,由于是將內(nèi)存單元的各位的值(0或1)按八進(jìn)制 形式輸出,因此輸出的數(shù)值不帶符號(hào)。,(2) o格式符,功能,以八進(jìn)制、無符號(hào)形式輸出整數(shù)。,格式,o , %mo,對(duì)于長(zhǎng)整型

4、數(shù)可以用“l(fā)o”格式輸出。,以十六進(jìn)制無符號(hào)形式輸出整數(shù)。,(3) x格式符,功能,格式,x, %mx,對(duì)于長(zhǎng)整型數(shù)可以用“l(fā)x”格式輸出。,一個(gè)有符號(hào)整數(shù)(int型)也可用%u輸出;反之, 一個(gè)unsigned型也可用%d、%o,%x輸出。,(4) u格式符,以十進(jìn)制無符號(hào)形式輸出unsigned數(shù)據(jù)。,功能,格式,u ,%mu,(5) c格式符,功能,用來輸出一個(gè)字符。,格式,c %mc,c=a; printf(%c,%3c ,%d ,c,c,c); a, a,97 注:上行的%c和c的意義不同。,其值在0255內(nèi)的整數(shù),可用c或d輸出。,一個(gè)字符,可用c或d輸出。,(6) s格式符,輸出

5、字符串,直到遇到字符串結(jié)束標(biāo)識(shí)0為止。,功能,格式,1、s 按字符串的實(shí)際長(zhǎng)度輸出。 printf(%s,china); china 2、ms 輸出的字符串占m列。 printf(%3s,%7s,china,china); china,china 1.當(dāng)字符串實(shí)際長(zhǎng)度m,則按實(shí)際長(zhǎng)度輸出。 2.當(dāng)字符串實(shí)際長(zhǎng)度m 。則左端補(bǔ)空格。 3、-ms 輸出的字符串占m列。 printf(%3s,%-7s,china,china); china,china 1.當(dāng)字符串實(shí)際長(zhǎng)度m,則按實(shí)際長(zhǎng)度輸出。 2.當(dāng)字符串實(shí)際長(zhǎng)度m 。則右端補(bǔ)空格。,4、m.ns 輸出的字符串占m列。 printf(%7.2s,

6、china); ch 1.左端輸出m-n個(gè)空格,右端輸出字符串左n個(gè)字符。 2.當(dāng)字符串實(shí)際長(zhǎng)度n 。則n為字符串長(zhǎng)度。 5、-m.ns 輸出的字符串占m列。 printf(%-7.2s,%.4s,china,china); ch ,chin 1.右端輸出m-n個(gè)空格,左端輸出字符串左n個(gè)字符。 2.當(dāng)字符串實(shí)際長(zhǎng)度n 。則n為字符串長(zhǎng)度。 3.當(dāng)m沒有時(shí)自動(dòng)地m=n=4。,(7) f格式符,用來輸出實(shí)數(shù)(包括單精度、雙精度) 以小數(shù)形式輸出。,功能,格式,1、%f:實(shí)數(shù)的整數(shù)部分全部輸出,小數(shù)部分保留六位。2、%mf:輸出的實(shí)數(shù)共占m位,小數(shù)部分保留六位。 m實(shí)際長(zhǎng)度,左端補(bǔ)空格。 3、%.

7、nf:輸出的實(shí)數(shù),總寬度按實(shí)際寬度,小數(shù)部分 占n位。,float a=123.45; printf(“%f,%11f,%.2f”,a,a,a); 程序運(yùn)行結(jié)果為: 123.450000, _123.450000 , 123.45,4、%m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小數(shù)部分占n位。 如果數(shù)據(jù)的實(shí)際寬度小于m,右靠齊,左邊補(bǔ)空格。 5、%-m.nf,輸出的實(shí)數(shù)包括小數(shù)點(diǎn)在內(nèi)共占m位,其中小數(shù)部分占n位。 如果數(shù)據(jù)的實(shí)際寬度小于m,則左靠齊,右邊補(bǔ)空格.,float a=123.45; printf(“%10.2f,%-10.2f”,a,a); 程序運(yùn)行結(jié)果為: _ _ _ 1

8、23.450,123.450_ _ _,(8) e格式符,以指數(shù)形式輸出實(shí)數(shù),功能,格式,1、%e 輸出6位小數(shù);指數(shù)部分占5位,(其中e占一位, 指 數(shù)符號(hào)占一位,指數(shù)占3位), %e輸出實(shí)數(shù)占13列寬度。,2、%me 輸出的實(shí)數(shù)共占m位,小數(shù)部分保留六位。 m實(shí)際長(zhǎng)度,左端補(bǔ)空格。,3、%m.ne 數(shù)據(jù)共占m位,(當(dāng)mn+7,突破m的限制)。 n為數(shù)據(jù)的小數(shù)部分的小數(shù)位數(shù), 實(shí)際長(zhǎng)度m,右靠齊,左端補(bǔ)空格。 4、%-m.ne n為數(shù)據(jù)的小數(shù)部分的小數(shù)位數(shù), 實(shí)際長(zhǎng)度m,左靠齊,右端補(bǔ)空格。,(9) g格式符,根據(jù)數(shù)值的大小,自動(dòng)選擇f或e輸出實(shí)數(shù)。,功能,格式,g 選擇占寬度較小的一種。,

9、printf函數(shù)使用說明,1.有些系統(tǒng)要求格式字符要用小寫字母。 printf(%d, %f, a, f); printf(%D, %F, a, f); ,2.如輸出字符%,則在“格式控制”字符串重用連續(xù)的兩個(gè)%字符。 printf(%f%n, 1.0/3); 輸出:0.333333%,3.可以在“格式控制”字符串內(nèi)包含“轉(zhuǎn)義字符”。例如:n,t,b,r,f等。 printf(%d, %fn, a, f);,轉(zhuǎn)義字符,printf函數(shù)舉例,#include main() int a=29; long b=123456; double x=123.456; char c=:; printf(1.

10、 a=%d, a=%4d, a, a); printf(a=%-4d, a=%04dn, a, a); printf(2. a=%o, a=%04o, a, a); printf(a=%x, a=0 x%xn, a, a); printf(3. b=%ld, b=%8ldn, b, b); printf(4. x=%f, x=%.2f, x, x); printf(x=%10.2f, x=%-10.2fn, x, x);,1.a=29, a= 29, a=29 ,a=0029 2.a=35, a=0035, a=1d, a=0 x1d 3.b=123456, b= 123456 4.x=123

11、.456001, x=123.46, x= 123.46, x=123.46,printf(5.x=%e, x=%.2e, x=%gn, x, x, x); printf(6.%c%8s%cn, c, how are you, c); printf(7.%c%15s%cn, c, how are you, c); printf(8.%c%+10.3s%cn, c, how are you, c); printf(9.%c%-10.3s%cn, c, how are you, c); ,5.x=1.234560e+02, x=1.23e+02, x=123.456001 6.:how are y

12、ou: 7.: how are you: 8.: how: 9.:how :,2、格式輸入函數(shù)scanf,功能:,該函數(shù)可按指定的格式輸入多個(gè)不同類型的數(shù)據(jù),并將輸入數(shù)據(jù)存入地址參數(shù)所指定的地址單元。,格式:,scanf(格式控制,地址表列) 格式控制:與printf的格式控制含義相同。 輸出表列:是由若干個(gè)地址組成的表列,可以是地址,或字符串首地址。 ,格式控制符與后續(xù)參數(shù)中的變量地址的對(duì)應(yīng)關(guān)系,scanf附加的格式說明字符,scanf函數(shù)的格式控制符,%* width l | h Type,一般形式:,說明:, :表示可選項(xiàng),可缺省。|表示互斥關(guān)系。 width:指定輸入數(shù)據(jù)的域?qū)挘隹崭?/p>

13、或不可轉(zhuǎn)換字符則結(jié)束。 Type:各種格式轉(zhuǎn)換符(參照printf)。 *:抑制符,輸入的數(shù)據(jù)不會(huì)賦值給相應(yīng)的變量。 l:用于d、u、o、x前,指定輸入為long型整數(shù);用于e、f前,指定輸入為double型實(shí)數(shù)。 h:用于d、u、o、x前,指定輸入為short型整數(shù)。,使用scanf函數(shù)注意事項(xiàng),(1) 如果相鄰兩個(gè)格式控制符之間,不指定數(shù)據(jù)分隔符(如逗號(hào)、冒號(hào)等),則相應(yīng)的兩個(gè)輸入數(shù)據(jù)之間,至少用一個(gè)空格分隔、Tab鍵分隔,或者輸入一個(gè)數(shù)據(jù)后,按回車,然后再輸入下一個(gè)數(shù)據(jù)。 (2) 格式控制字符串中出現(xiàn)的常規(guī)字符(包括轉(zhuǎn)義字符),務(wù)必原樣輸入。 (3) 為改善人機(jī)交互性,同時(shí)簡(jiǎn)化輸入操作,

14、在設(shè)計(jì)輸入操作時(shí),一般先用printf( )函數(shù)輸出一個(gè)提示信息,再用scanf( )函數(shù)進(jìn)行數(shù)據(jù)輸入 。 (4) 當(dāng)格式控制字符串中指定了輸入數(shù)據(jù)的域?qū)抴idth時(shí),將讀取輸入數(shù)據(jù)中相應(yīng)的width位,但按需要的位數(shù)賦給相應(yīng)的變量,多余部分被舍棄。,例如: scanf (%d%d, 假設(shè)給num1輸入12,給num2輸入36,則正確的輸入操作為: 1236 或者 12 36 使用“”符號(hào)表示按回車鍵操作。,例如: scanf (%d:%d:%d, 假設(shè)給h輸入12,給m輸入30,給s輸入10,正確的輸入操作為: 12:30:10,例如: scanf (num1=%d, num2=%dn, 假

15、設(shè)給num1輸入12,給num2輸入36,正確的輸入操作為: num1=12,num2=36n,例如: 將scanf (num1=%d, num2=%dn, ,例如: scanf (%3c%3c, 假設(shè)輸入abcdefg,則系統(tǒng)將讀取的“abc”中的a賦給變量ch1;將讀取的def中的d賦給變量ch2。,使用scanf函數(shù)注意事項(xiàng),(5) 當(dāng)格式控制字符串中含有抑制符*時(shí),表示本輸入項(xiàng)對(duì)應(yīng)的數(shù)據(jù)讀入后,不賦給相應(yīng)的變量(該變量由下一個(gè)格式指示符輸入)。 (6) 使用格式控制符%c輸入單個(gè)字符時(shí),空格和轉(zhuǎn)義字符均作為有效字符被輸入。 (7) 輸入數(shù)據(jù)時(shí),遇到以下情況,系統(tǒng)認(rèn)為該數(shù)據(jù)結(jié)束: 遇到空

16、格,或者回車鍵,或者Tab鍵。 遇到輸入域?qū)挾冉Y(jié)束。例如“%3d”,只取3列。 遇到非法輸入。比方說,在輸入數(shù)值數(shù)據(jù)時(shí),遇到字母等非數(shù)值符號(hào)。 (8) 當(dāng)一次scanf調(diào)用需要輸入多個(gè)數(shù)據(jù)項(xiàng)時(shí),如果前面數(shù)據(jù)的輸入遇到非法字符,并且輸入的非法字符不是格式控制字符串中的常規(guī)字符,那么,這種非法輸入將影響后面數(shù)據(jù)的輸入,導(dǎo)致數(shù)據(jù)輸入失敗。,例如: scanf (%2d%*2d%3d, 假設(shè)輸入123456789 輸出結(jié)果為:num1=12, num2=567。,例如: scanf (%c%c%c, 假設(shè)輸入:ABC,則系統(tǒng)將字母A賦值給ch1,空格賦值給ch2,字母B賦值給ch3。,例如: scanf (%d, a); 如果輸入為:12a3,a的值將是12。,例如: scanf (%d,%d, 如果輸入為:12a34,那么a的值將是12,b的值將無法預(yù)測(cè)。 正確的輸入是:12,34,通過scanf函數(shù)從鍵盤輸入數(shù)據(jù) 通過scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),需要注意以下幾點(diǎn): 1scanf函數(shù)中的輸入項(xiàng)必須是“地址量”,它可以是一個(gè)變量的地址,也可以是數(shù)組的首地址,但不能是變量名。例如,如果定義了a,b為整型變量,則 scanf(“%d,%d”,a,b); 是不合法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論