第3章格式輸入輸出語(yǔ)句_第1頁(yè)
第3章格式輸入輸出語(yǔ)句_第2頁(yè)
第3章格式輸入輸出語(yǔ)句_第3頁(yè)
第3章格式輸入輸出語(yǔ)句_第4頁(yè)
第3章格式輸入輸出語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

第三章格式化輸入輸出Printf()Scanf()Putchar()Getchar()

3.1格式化輸出函數(shù)——printf()printf()函數(shù)的一般格式

作用:向輸出設(shè)備輸出若干個(gè)任意類型的數(shù)據(jù)。

一般格式:

printf("格式字符串"[,輸出項(xiàng)表]);

說(shuō)明:

1.格式字符串也稱“轉(zhuǎn)換控制字符串”,包含三種字符:

(1)格式說(shuō)明符:%[附加格式說(shuō)明][格式字符]

(2)轉(zhuǎn)義字符

(3)普通字符──原樣輸出。

例如:

printf(“radius=%f,length=%f,area=%f\n”,r,l,s);

—m.nl[例3.1]已知圓半徑radius=1.5,求圓周長(zhǎng)和圓面積。

#definePI3.1415926main()

{floatradius,length,area;

radius=1.5;

length=2*PI*radius; /*求圓周長(zhǎng)*/

area=PI*radius*radius; /*求圓面積*/

printf(“radius=%f\n”,radius); /*輸出圓半徑*/

printf(“l(fā)ength=%7.2f,area=%7.2f\n”,length,area);/*輸出圓周長(zhǎng)、面積*/

}

運(yùn)行結(jié)果:

radius=1.500000length=9.42,area=7.07 inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.677890e+002567.789000567.789%說(shuō)明 格式字符要用小寫,只有x|e|g三個(gè)格式字符可以用大寫字母。用大寫字母時(shí),輸出數(shù)據(jù)中包含的字母也大寫格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng)輸出轉(zhuǎn)換:格式字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格式輸出附加格式說(shuō)明符(修飾符).n對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入)對(duì)字符串,指定實(shí)際輸出位數(shù)修飾符功能m輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度<m,左補(bǔ)空格;否則按實(shí)際輸出輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊)-指定在有符號(hào)數(shù)的正數(shù)前顯示正號(hào)(+)+輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填00在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l

2.輸出項(xiàng)表可選項(xiàng)。用逗號(hào)分隔的表達(dá)式。例:下面的printf()函數(shù)都是合法的:

(1)printf("Iamastudent.\n"); (2)printf("%d",3+2); (3)printf("a=%fb=%5d\n",a,a+3); 注意:“格式字符串”中的格式指示符,必須與“輸出項(xiàng)表”中相應(yīng)輸出項(xiàng)的數(shù)據(jù)類型一致,否則會(huì)引起輸出錯(cuò)誤。

3.2格式字符(9個(gè))

輸出不同類型的數(shù)據(jù),要使用不同的格式字符。

1.d──以帶符號(hào)的十進(jìn)制整數(shù)形式輸出。

[例3.2]類型轉(zhuǎn)換字符d的使用。main(){intnum1=123;longnum2=123456;/*用4種不同格式,輸出int型數(shù)據(jù)num1的值*/printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",num1,num1,num1,num1);/*用3種不同格式,輸出long型數(shù)據(jù)num2的值*/printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2);}

運(yùn)行結(jié)果:num1=123,num1=□□123,num1=123□□,num1=123num2=123456,num2=□□123456,num2=123456

對(duì)于整數(shù),還可用:%o:八進(jìn)制無(wú)符號(hào)形式輸出

%x:十六進(jìn)制無(wú)符號(hào)形式輸出對(duì)于unsigned型數(shù)據(jù),也可用

%u:以十進(jìn)制無(wú)符號(hào)形式輸出。例如:printf("%d,%o,%x,%u\n",-1,-1,-1,-1);運(yùn)行結(jié)果:-1,177777,ffff,65535

2.f──以小數(shù)形式,輸出單精度/雙精度實(shí)數(shù)。[例3.3]類型轉(zhuǎn)換字符f的使用。main(){floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);printf("d1+d2=%f\n",d1+d2); 運(yùn)行結(jié)果:123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46d1+d2=3333333333333.333010

說(shuō)明:輸出結(jié)果中,數(shù)據(jù)123.456001和3333333333333.333010中的01和010都是無(wú)意義的,因?yàn)樗鼈兂隽擞行?shù)字的范圍。對(duì)于實(shí)數(shù),還可使用格式符:%e:以標(biāo)準(zhǔn)指數(shù)形式輸出。尾數(shù):整數(shù)部分:為1位非0數(shù)字;小數(shù)點(diǎn):占一位;小數(shù)部分:占6位;指數(shù):占5位(如e-003);共計(jì)13位。

%g:自動(dòng)選擇%f或%e格式中較短者、不輸出無(wú)意義零。3.c──輸出一個(gè)字符。[例3.4]類型轉(zhuǎn)換字符c的使用。main(){charc='A';inti=65;printf("c=%c,%5c,%d\n",c,c,c);printf("i=%d,%c",i,i);}程序運(yùn)行結(jié)果如下:

c=A,□□□□A,65i=65,A

注意:C語(yǔ)言中,整數(shù)可以字符形式輸出,字符數(shù)據(jù)也可以用整數(shù)形式輸出。注意c的不同含義4.s──輸出一個(gè)字符串。[例3.5]類型轉(zhuǎn)換字符s的使用。main(){printf("%s,%5s,%-10s\n","Internet","Internet","Internet");printf("%10.5s,%-10.5s","Internet","Internet");printf("%4.5s\n","Internet");} [程序演示]程序運(yùn)行結(jié)果如下:Internet,Internet,Internet□□□□□□□Inter,Inter□□□□□,Inter注意:系統(tǒng)輸出字符和字符串時(shí),不輸出單引號(hào)和雙引號(hào)。

3.3格式化輸入——scanf()函數(shù)作用:從外部輸入設(shè)備向計(jì)算機(jī)主機(jī)輸入數(shù)據(jù)。scanf()函數(shù)的一般格式

scanf()函數(shù)的一般格式scanf(“%[附加格式說(shuō)明]格式字符串”,輸入項(xiàng)首地址表);附加格式說(shuō)明符(修飾符)例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入19991015

則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);

輸入12345678765.43則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);

輸入1234567則12a,67b例scanf(“%3c%2c”,&c1,&c2);

輸入abcde

則‘a(chǎn)’c1,‘d’c23.4數(shù)據(jù)輸入操作

1.一般用空格作分隔符例如:scanf("%d%d",&num1,&num2);

若要輸入12給num1,輸入36給num2,則正確的輸入操作為:

12□36↙

或者:12↙

36↙求地址運(yùn)算符2.“格式字符串”中出現(xiàn)的普通字符,務(wù)必原樣輸入。例如,scanf("%d,%d",&num1,&num2);

假設(shè)輸入12給num1,給輸入36num2,正確的輸入操作為:12,36↙

注意:scanf()函數(shù)中,格式字符串內(nèi)的轉(zhuǎn)義字符(如\n),系統(tǒng)將其視為普通字符,所以也要原樣輸入。

例如:

scanf("num1=%d,num2=%d\n",&num1,&num2);

假設(shè)輸入12給num1,給輸入36num2,正確的輸入操作為:

num1=12,num2=36\n↙

建議:為改善人機(jī)交互性,同時(shí)簡(jiǎn)化輸入操作,設(shè)計(jì)輸入格式時(shí),宜先用printf()函數(shù)輸出提示信息。例如:不宜用

scanf("num1=%d,num2=%d\n",&num1,&num2);

應(yīng)用:

printf("num1=");scanf("%d",&num1);printf("num2=");scanf("%d",&num2);

或用:

printf("num1,num2=");scanf("%d,%d”,&num1,&num2);3.輸入數(shù)據(jù)時(shí),遇以下情況系統(tǒng)認(rèn)為該數(shù)據(jù)結(jié)束:

(1)遇到空格、回車鍵或者Tab鍵。

(2)遇到輸入域?qū)挾冉Y(jié)束。例如“%3d”,只取3列。

(3)遇到非法輸入。

4.使用“%c”輸入單個(gè)字符時(shí),空格和轉(zhuǎn)義字符均作為有效字符被輸入。例如:

scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);

假設(shè)輸入:A□B□C↙

則系統(tǒng)將:字母'A'賦值給ch1,空格'□'賦值給ch2,字母'B'賦值給ch3。如scanf(“%d%c%f”,&a,&b,&c);

若輸入1234a123o.26

則1234a,‘a(chǎn)’b,123c3.5單個(gè)字符輸入輸出——getchar()和putchar()函數(shù)單個(gè)字符的輸出──putchar()函數(shù)[例3.6]putchar()函數(shù)的格式和使用方法。#include"stdio.h" /*編譯預(yù)處理命令:文件包含*/main(){charch1='N',ch2='E',ch3='W';putchar(ch1);putchar(ch2);putchar(ch3); /*輸出*/putchar('\n');putchar(ch1);putchar('\n’);/*輸出ch1的值,并換行*/putchar('E');putchar('\n’);/*輸出字符'E',并換行*/putchar(ch3);putchar('\n');}

運(yùn)行結(jié)果:

NEWNEW1.格式:putchar(ch);

其中ch可以是一個(gè)字符變量或常量,也可以是一個(gè)轉(zhuǎn)義字符。

2.作用:向終端輸出一個(gè)字符。

3.說(shuō)明:

(1)只能用于單個(gè)字符的輸出,且一次只能輸出一個(gè)字符。

(2)要使用putchar()函數(shù),必須在程序的開頭加上編譯預(yù)處理命令(也稱包含命令),即:

#include<stdio.h>表示要使用的函數(shù),包含在標(biāo)準(zhǔn)輸入輸出(stdio)頭文件(.h)中。3.6單個(gè)字符的輸入──getchar

溫馨提示

  • 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)論