版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版二手房產(chǎn)買賣雙方交易進(jìn)度及資金結(jié)算合同3篇
- 2024版大米電商平臺(tái)入駐與合作合同3篇
- 2024年度金融機(jī)構(gòu)外匯借款還款資金劃撥合同3篇
- 2024年水電費(fèi)用結(jié)算協(xié)議2篇
- 2024版影院自動(dòng)售貨機(jī)安裝合同
- 2024年度家居用品包裝設(shè)計(jì)承包合作協(xié)議
- 2024年度高端汽車品牌4S店銷售及零配件供應(yīng)合同2篇
- 2024年商業(yè)合作保密協(xié)議期限標(biāo)準(zhǔn)范本合同2篇
- 2024版?zhèn)€人住宅房產(chǎn)買賣合同2篇
- 2024三舊改造項(xiàng)目推進(jìn)與社區(qū)共建共享合作協(xié)議3篇
- 印象派美術(shù)課件
- 小學(xué)話劇課本劇興趣小組社團(tuán)教學(xué)設(shè)計(jì)附社團(tuán)活動(dòng)記錄(已填好,直接打印)
- 《散文創(chuàng)作與研究》(10543)自考考試復(fù)習(xí)題庫(kù)(含答案)
- 穩(wěn)定系數(shù)計(jì)算表
- 河北省對(duì)口升學(xué)計(jì)算機(jī)基礎(chǔ)資料課件
- Cytiva:層析介質(zhì)壽命和清潔驗(yàn)證綜合設(shè)計(jì)的良好實(shí)踐白皮書
- 全冀教版六年級(jí)上冊(cè)英語(yǔ)第四單元知識(shí)點(diǎn)總結(jié)
- 酒店接待醉酒客人流程課件
- PPT基礎(chǔ)教程完整版
- 2023年新版企業(yè)用安全檢查表《工貿(mào)行業(yè)重大事故隱患判定標(biāo)準(zhǔn)和重點(diǎn)檢查事項(xiàng)檢查表》《冶金企業(yè)重大事故隱患摸底表》
- 《平行四邊形的面積》說(shuō)課課件
評(píng)論
0/150
提交評(píng)論