c語(yǔ)言輸入輸出語(yǔ)句_第1頁(yè)
c語(yǔ)言輸入輸出語(yǔ)句_第2頁(yè)
c語(yǔ)言輸入輸出語(yǔ)句_第3頁(yè)
c語(yǔ)言輸入輸出語(yǔ)句_第4頁(yè)
c語(yǔ)言輸入輸出語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 輸入輸出語(yǔ)句 在程序的運(yùn)行過(guò)程中,往往需要由用戶輸入一些數(shù)據(jù),這些數(shù)據(jù)經(jīng)機(jī)器處理后要輸出反饋給用戶。通過(guò)數(shù)據(jù)的輸入輸出來(lái)實(shí)現(xiàn)人與計(jì)算機(jī)之間的交互,所以在程序設(shè)計(jì)中,輸入輸出語(yǔ)句是一類必不可少的重要語(yǔ)句。在C語(yǔ)言中,沒(méi)有專門的輸入輸出語(yǔ)句,所有的輸入輸出操作都是通過(guò)對(duì)標(biāo)準(zhǔn)I/O庫(kù)函數(shù)的調(diào)用實(shí)現(xiàn)。最常用的輸入輸出函數(shù)有scanfscanf( )( )、printfprintf( )( )、getchargetchar( ) ( ) 、putcharputchar ( )( )、gets()gets()、puts() puts() 。4.1 putchar 函數(shù) 當(dāng)我們要把字符一個(gè)一個(gè)輸出時(shí),可以

2、用putchar 函數(shù),它是一個(gè)專門輸出字符的函數(shù)。其一般形式是: 該函數(shù)的功能是輸出“字符表達(dá)式”的值。 例如:putchar(A);輸出字符A; putchar(A+1); 輸出字符B; 在使用標(biāo)準(zhǔn)I/O庫(kù)函數(shù)時(shí),要用預(yù)編譯命令“#inciude”將“stdio.h”文件包含到用戶源文件中,即: stdio.h是standard input&output的縮寫,它包含了與標(biāo)準(zhǔn)I/O庫(kù)函數(shù)有關(guān)的定義和函數(shù)聲明(具體見(jiàn)編譯預(yù)處理命令章節(jié))。在需要使用標(biāo)準(zhǔn)I/O庫(kù)中的函數(shù)時(shí),應(yīng)在程序前使用上述預(yù)編譯命令。putchar ()#include 4.2 printf 函數(shù)4.2.1 prin

3、tf 函數(shù)的格式 printf函數(shù)的一般格式為: “輸出表列”是需要輸出的一些數(shù)據(jù),可以是表達(dá)。例如: printf(%d %d,a+2,b); “格式控制”是用雙引號(hào)括起來(lái)的字符串,也稱“轉(zhuǎn)換控制字符串”,它用于控制輸出數(shù)據(jù)的格式。printf(,)“格式控制”包括兩種信息:(1)格式說(shuō)明,由“%”和格式說(shuō)明字符組成,如%d、%f。 表4.1 printf格式符格式字符 說(shuō)明 d以帶符號(hào)的十進(jìn)制形式輸出整型數(shù)(正數(shù)不輸出符號(hào)) o以8進(jìn)制無(wú)符號(hào)形式輸出整型數(shù)(不輸出前導(dǎo)符0) x以16進(jìn)制無(wú)符號(hào)形式輸出整型數(shù)(不輸出前導(dǎo)符0 x) u以無(wú)符號(hào)10進(jìn)制形式輸出整型數(shù) c以字符形式輸出,只輸出一

4、個(gè)字符 s輸出字符串 f以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù) e以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位 g自動(dòng)選用%f或%e格式中輸出寬度較短的一種格式,不輸出無(wú)意義的0 (2)普通字符,即需要原樣輸出的字符。 例如:printf(a=%d b=%d,a,b); 在上面雙引號(hào)中的字符除了“%d”和“%d”以外,還有非格式說(shuō)明的普通字符(“a=”和“b=”),它們按原樣輸出。計(jì)算機(jī)在執(zhí)行該語(yǔ)句時(shí),首先輸出格式控制串中的“a=”,然后碰到一個(gè)格式說(shuō)明“%d”,就從輸出表列中取第一個(gè)教據(jù)項(xiàng)a,按格式說(shuō)明輸出該數(shù)據(jù)項(xiàng)值,然后原樣輸出格式控制串中的“b=”,又碰到第二個(gè)格式說(shuō)明“

5、%d”,取輸出表列中的第二個(gè)數(shù)據(jù)項(xiàng)b,按格式說(shuō)明輸出其值。4.2.2 格式說(shuō)明字符 d d格式符格式符 用來(lái)控制整型數(shù)按十進(jìn)制形式輸出。 %d,按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 %md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)(包括負(fù)號(hào))小于m,則右對(duì)齊左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。 %-md,m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左對(duì)齊補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出 %ld,輸出長(zhǎng)整型數(shù)據(jù)。 o o格式符格式符l 以八進(jìn)制數(shù)形式輸出整型數(shù)據(jù)。l 數(shù)值不帶符號(hào),即將符號(hào)也一起作為八進(jìn)制數(shù)的一部分輸出。l 對(duì)長(zhǎng)整數(shù)(long型)可以用“%lo”格式輸出。l 可以指定字段寬

6、度,如“%8o”。l o格式符一般用于輸出正整數(shù)或無(wú)符號(hào)類型的數(shù)據(jù)。 x x格式符格式符l 以16進(jìn)制形式輸出整型數(shù)據(jù)。l 不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。l 可以用“%x”輸出長(zhǎng)整型數(shù)。l 可以指定輸出字段的寬度,如“%12x”。l x格式符一般用于輸出正整數(shù)或無(wú)符號(hào)類型的數(shù)據(jù)。 u u格式符格式符l 用來(lái)輸出unsigned數(shù)據(jù),即無(wú)符號(hào)數(shù),以十進(jìn)制形式輸出。l 一個(gè)有符號(hào)整型數(shù)(int型)也可以用%u格式輸出,此時(shí)把符號(hào)位當(dāng)作數(shù)值看待。l 一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出,按相互賦值的規(guī)則處理。unsigned數(shù)據(jù)也可用. %o或%x格式輸出。 c c格式符格式符l 用來(lái)輸出一個(gè)字

7、符。如: char c=a; printf(%c,c); 輸出字符a,注意“%c”的c是格式符,逗號(hào)右邊的C是變量名,不要搞混。l 一個(gè)整數(shù),只要它的值在0255范圍內(nèi),也可以用字符形式輸,在輸出前將該整數(shù)轉(zhuǎn)換成換成相應(yīng)的ASCII字符;反之,一個(gè)字符數(shù)據(jù)也可以用整型數(shù)形式輸出,但輸出的是其ASCII碼值。 s s格式符格式符l %s%s,用來(lái)輸出一個(gè)字符串(不包括雙引號(hào))。l %ms%ms,輸出的字符串占m列,若字符串長(zhǎng)度小于m,則“右對(duì)齊”,左邊補(bǔ)空格。如字符本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。l %-ms%-ms,若字符串長(zhǎng)度小于m,則在m列范圍內(nèi),“左對(duì)齊”,右邊補(bǔ)空格。

8、如字符本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。l %m.ns%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左邊補(bǔ)空格。l %-m.ns%-m.ns,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右面補(bǔ)空格。如果m省略或nm,則m自動(dòng)取n值,即保證n個(gè)字符正常輸出。 f f格式符格式符用來(lái)輸出實(shí)型數(shù)(包括單、雙精度數(shù)),以小數(shù)形式輸出。l %f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)部分全 部如數(shù)輸出,并輸入6位小數(shù)。應(yīng)當(dāng)注意,并非全部數(shù)字都是有效數(shù)字,單精度數(shù)的有效位數(shù)一般為7位。也就是說(shuō)單精度數(shù)用%f格式輸出,只有前7位是有效的。雙精度數(shù)的有效

9、位數(shù)一般為16位,雙精度數(shù)用%f格式輸出時(shí),只有前16位有效。l %m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度(包括小數(shù)點(diǎn)和負(fù)號(hào))小于m,則采用“右對(duì)齊”輸出,左端補(bǔ)空格。如果m省略則整數(shù)部分按實(shí)際寬度如數(shù)輸出。l %-m.nf與%m.nf基本相同,只是使輸出的數(shù)值“左對(duì)齊”,右端補(bǔ)空格。 e e格式符格式符以指數(shù)形式輸出實(shí)數(shù)。l %e,不指定輸出所占的寬度和數(shù)字部分小數(shù)位數(shù),由系統(tǒng)自動(dòng)指定給出6位小數(shù),指數(shù)部分占5位(如e+002),其中“e”占一位,指數(shù)符號(hào)占一位,指數(shù)占3位。數(shù)值按標(biāo)準(zhǔn)化指數(shù)形式輸出(即小數(shù)點(diǎn)前必須有而且只有一位非零數(shù)字)。l %m.ne和%-m.ne

10、,m、n及“-”字符含義與之前相同。此處n為指數(shù)的數(shù)字部分(又稱尾數(shù))的小數(shù)位數(shù)。如省略n,則n=6。如省略m,則自動(dòng)使m等于數(shù)據(jù)應(yīng)有的長(zhǎng)度,即m=7+n。 g g格式符格式符 用來(lái)輸出實(shí)型數(shù),它根據(jù)數(shù)值的大小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無(wú)意義的零。 若f=123.468,則: printf(”%f,%e,%g”,f,f,f); 輸出如下: 123.468000,1.234680e+002,123.468 用%f格式輸出占10列,用%e格式輸出占13列,用%g格式時(shí),自動(dòng)從前面兩種格式中選擇短者(今為%f格式為短),故選擇按%f格式輸出,且小數(shù)位中的最后三位為

11、無(wú)意義的0,不輸出。%g格式用得比較少。 在使用函數(shù)printf函數(shù)時(shí),還有幾點(diǎn)要說(shuō)明: 格式字符要用小寫字母,如%d不能寫成%D。 可以在printf函數(shù)中的“格式控制”字符串內(nèi)包含轉(zhuǎn)義字符,如n、t、b 、r、f、377等,它們將原樣輸出。 上面介紹的d、o、x、u、c、s、f、e、g等字符,如不是用在“%”后面就作為普通字符,原樣輸出。 如果想輸出字符“%”,可以在“格式控制”字符串中用連續(xù)兩個(gè)%表示,或者使用轉(zhuǎn)義字符“45”。 不同的系統(tǒng)在格式輸出時(shí),輸出結(jié)果可能會(huì)有一些小的差別,例如用%e格式符輸出實(shí)數(shù)時(shí),有些系統(tǒng)輸出的指數(shù)部分為4位(如e+02)而不是5位(如e+002),前面數(shù)字

12、的小數(shù)部分為5位而不是6位等等。4.3 getchar 函數(shù) 此函數(shù)的作用是從鍵盤輸入一個(gè)字符,并把這個(gè)字符作為函數(shù)的返回值。getchar函數(shù)沒(méi)有參數(shù),其一般形式為:getchar()。例4.8 請(qǐng)注意,getchar()只能接受一個(gè)字符。getchar函數(shù)得到的字符可以賦給一個(gè)字符變量或整型變量。也可以不賦給任何變量。也可以作為表達(dá)式的一部分 在一個(gè)函數(shù)中調(diào)用getchar函數(shù),應(yīng)該在函數(shù)的前面(或本文件開(kāi)頭)用:#include#includemain()char c;c=getchar();putchar(c);在運(yùn)行時(shí),如果從鍵盤輸入字符a;a (輸入a后,按回車鍵字符才 送到內(nèi)存)

13、a (輸出變量c的值a)4.4 scanf 函數(shù)4.4.1 4.4.1 一般形式一般形式 scanf函數(shù)的一般形式是: 其中,“地址表列”由若干個(gè)地址組成的表列,是可以接受數(shù)據(jù)的變量的地址。“格式控制”的含義同printf函數(shù),但scanf中的“格式控制”是控制輸入的數(shù)據(jù)。例例4.9 main() int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%dn”,a,b,c); scanf(格式控制),)4.4.2 4.4.2 格式說(shuō)明格式說(shuō)明 和printf函數(shù)中的格式說(shuō)明相似,scanf中的格式說(shuō)明也以%開(kāi)始,以一個(gè)格式

14、字符結(jié)束,中間可以插入附加格式說(shuō)明字符(修飾符)。 如表4.3和4.4所示。 表表4.3 scanf4.3 scanf格式字符格式字符格式字符 說(shuō)明 d用來(lái)輸入十進(jìn)制整型數(shù) o用來(lái)輸入八進(jìn)制整型數(shù) x用來(lái)輸入十六進(jìn)制整型數(shù) c用來(lái)輸入單個(gè)字符 s用來(lái)輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以為空白字符開(kāi)始,以第一個(gè)分隔字符結(jié)束。系統(tǒng)自動(dòng)把字符串結(jié)束標(biāo)志0加到字符串尾部f用來(lái)輸入實(shí)型數(shù),可以用小數(shù)形式或指數(shù)形式輸入 e與f作用相同,e與f可以互相替換 表表4.4 scanf4.4 scanf附加的格式說(shuō)明字符附加的格式說(shuō)明字符字符 說(shuō)明 l用于輸入長(zhǎng)整數(shù)數(shù)據(jù)(可用%ld、%lo、%lx)

15、,以及double型數(shù)據(jù)(用%lf或%le) h用于輸入端整型數(shù)據(jù)(可用%hd、%ho,%hx) m(正整數(shù))指定輸入數(shù)據(jù)所占寬度(列數(shù)) * 表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量 (1)C語(yǔ)言在scanf中不使用%u格式符,對(duì)unsigned型數(shù)據(jù),以%d、%o或%x格式輸入。 (2)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。 (3)%后的附加說(shuō)明符”*”,用來(lái)表示跳過(guò)它相應(yīng)的數(shù)據(jù)。 (4)輸入數(shù)據(jù)時(shí)不能規(guī)定精度。4.4.3 scanf4.4.3 scanf函數(shù)的執(zhí)行中應(yīng)注意的問(wèn)題函數(shù)的執(zhí)行中應(yīng)注意的問(wèn)題scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。如果在“格式

16、控制”字符串中除了格式說(shuō)明外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符,即原樣輸入。在用“% c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。在輸入數(shù)據(jù)時(shí),遇到以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束; 遇空格,或回車鍵或跳格鍵(tab鍵)。 遇寬度結(jié)束時(shí),如“%3d”,只取3列。 遇非法輸入。4.54.5 gets和puts函數(shù)o gets()函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到回車結(jié)束, 但回車符 不屬于這個(gè)字符串。 其調(diào)用格式為: gets(s); 其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。 gets(s)函數(shù)與scanf(%s, &s)相似, 但不完全相

17、同,使用scanf(%s, &s) 函數(shù)輸入字符串時(shí)存在一個(gè)問(wèn)題, 就是如果輸入了空格會(huì)認(rèn)為輸入字符串結(jié)束, 空格后的字符將作為下一個(gè)輸入項(xiàng)處理, 但gets() 函數(shù)將接收輸入的整個(gè)字符 串直到回車為止。o puts()函數(shù)用來(lái)向標(biāo)準(zhǔn)輸出設(shè)備(屏幕)寫字符串并換行。其調(diào)用格式為: puts(s); 其中s為字符串變量(字符串?dāng)?shù)組名或字符串指針)。 puts()函數(shù)的作用與語(yǔ)printf(%sn, s)相同4.6 程序舉例 例例4.104.10 輸入三角形的變長(zhǎng),求三角形面積。為簡(jiǎn)單起見(jiàn),設(shè)輸入的三邊長(zhǎng)a,b,c能構(gòu)成三角形。程序如下: #include main() float a,

18、b,c,s,area; scanf(%f%f%f,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area); 例例4.11 從鍵盤輸入一個(gè)大寫字母,要求轉(zhuǎn)換成小寫字母輸入。程序如下: #include main() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2); 字符數(shù)組中常用的處理函數(shù)字符數(shù)組中常用的處理函數(shù)a a、strlenstrlen()()求字符串的長(zhǎng)度:它是string length的縮寫。函數(shù)的原型為strlen(char);b b、strcpystrcpy()()復(fù)制字符串:其函數(shù)的原

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論