版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
★數(shù)據(jù)的輸入輸出是一個(gè)計(jì)算機(jī)程序應(yīng)具備的基本功能。沒有輸出的程序是沒有意義的。沒有輸入的程序是缺乏靈性和通用性的。由于C語言本身不像其他某些高級語言一樣有輸入和輸出語句,其輸入和輸出是由標(biāo)準(zhǔn)的輸入和輸出函數(shù)完成的,使用標(biāo)準(zhǔn)輸入輸出函數(shù)時(shí),由于這些函數(shù)的原型均在特定的stdio.h這個(gè)頭文件中定義,因此需要通過預(yù)處理命令在程序開頭嵌入頭文件stdio.h,寫出如下命令:
#include<stdio.h>
由于printf函數(shù)和scanf函數(shù)在程序中用的比較頻繁,在程序的可以不加#include<stdio.h>命令本章將介紹標(biāo)準(zhǔn)函數(shù)庫中部分常用的輸入和輸出函數(shù)?!?/p>
3.1字符輸入輸出函數(shù)
3.2格式輸入輸出函數(shù)
3.3應(yīng)用舉例本章目錄3.1字符輸入輸出函數(shù)
◆
1.字符輸入函數(shù)getchargetchar函數(shù)的功能是從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)上輸入一個(gè)字符。當(dāng)程序執(zhí)行到getchar函數(shù)時(shí),將等待用戶從鍵盤上輸入一個(gè)字符,并將這個(gè)字符作為函數(shù)結(jié)果值返回。getchar函數(shù)沒有參數(shù)。若需要使用putchar()函數(shù),則要把頭文件stdio.h包含進(jìn)來。對字符輸入函數(shù)的使用,調(diào)用形式如下getchar();
若需要使用getchar()函數(shù),則要把頭文件stdio.h包含進(jìn)來。例3.1#include<stdio.h>main(){charc;printf("pleaseinputacharacter:");/*輸出提示內(nèi)容*/c=getchar();/*從鍵盤讀入字符*/printf("Thecharacterinputedis%c\n",c);/*在屏幕上輸出所輸入的字符*/}運(yùn)行結(jié)果:
運(yùn)行該程序時(shí),提示操作后輸入一個(gè)或幾個(gè)字符,但由于getchar函數(shù)只能接收一個(gè)字符,字符c被接收,其他字符不起作用。然后在終端上以字符格式輸出所輸入的字符。3.1字符輸入輸出函數(shù)
★
2.字符輸出函數(shù)putchar()
該函數(shù)向標(biāo)準(zhǔn)輸出設(shè)備(通常是顯示終端)輸出一字符。它的調(diào)用形式如下:
putchar(字符變量);
例3.2#include<stdio.h>main(){inta;/*定義整數(shù)變量名*/a=100;/*給變量賦值*/printf("outputthecharacter\n");putchar(a);/*輸出字符*/}
運(yùn)行結(jié)果 執(zhí)行該程序,將把字符d(其ASCII碼為100)輸出在顯示屏上。3.1字符輸入輸出函數(shù)
字符輸入輸出只能一次輸入或輸出一個(gè)字符,不能輸入輸出其他類型的數(shù)據(jù)。格式輸入輸出函數(shù)是具有格式控制的函數(shù),它們可以用來輸入輸出C語言的標(biāo)準(zhǔn)類型的數(shù)據(jù),而且可以同時(shí)輸入或輸出多個(gè)同類型或不同類型的數(shù)據(jù)。3.2格式輸入輸出函數(shù)
3.2.1格式輸出函數(shù)
printf函數(shù)是將輸出項(xiàng)按指定的格式輸出到標(biāo)準(zhǔn)輸出設(shè)備上。調(diào)用printf函數(shù)的一般形式如下:
printf(格式控制字符串,輸出項(xiàng)列表);3.2格式輸入輸出函數(shù)照原樣輸出
printf(“I=%d,F=%f\n”,i,f);格式字符換行符輸出項(xiàng)列表圖3.1printf函數(shù)的參數(shù)說明
1.格式控制字符串
格式控制字符串通常是一對雙引號括起來的字符串常量。它包括兩方面的內(nèi)容:1)格式字符它由字符“%”和格式字符組成,如%d、%f、%c等,它們規(guī)定了輸出項(xiàng)的輸出格式。常用的格式說明中的格式字符及含義如表3.1表3.1格式字符3.2格式輸入輸出函數(shù)格式字符
說明d
八進(jìn)制整數(shù)o十進(jìn)制整數(shù)x十六進(jìn)制整數(shù)u
無符號十進(jìn)制整型數(shù)
c
單個(gè)字符
s
字符串
f
小數(shù)形式的浮點(diǎn)數(shù)
e
指數(shù)形式的浮點(diǎn)數(shù)
g
e和f中較短的一種
2)
普通字符格式控制字符串中的普通字符是需要照原樣輸出的字符,可起提示作用。
2.輸出項(xiàng)列表 輸出項(xiàng)是需要輸出的數(shù)據(jù)項(xiàng)(常量、變量或表達(dá)式),數(shù)據(jù)項(xiàng)應(yīng)當(dāng)與格式控制字符串中的格式字符一一對應(yīng)。 如果輸出項(xiàng)有多個(gè),數(shù)據(jù)項(xiàng)之間用逗號隔開。例如:
printf(“A=%d,B=%f\n”,a,b)
如果上面的語句中a的值為10,f的值為1.5,則輸出為:
A=10,B=1.5000003.2格式輸入輸出函數(shù)3.2格式輸入輸出函數(shù)
3.常用格式字符的用法
1)d、o、x、u格式字符屬于整形數(shù)據(jù)的格式符,分別輸出十進(jìn)制、八進(jìn)制、十六進(jìn)制和無符號十進(jìn)制整數(shù)。形式說明%d%o%x%u按整型數(shù)據(jù)的實(shí)際長度輸出%md%mo%mx%mum為整數(shù),按m指定的字段寬度輸出,若數(shù)據(jù)的實(shí)際長度小于m,輸出時(shí),向右對齊,左端補(bǔ)以空格;若數(shù)據(jù)的實(shí)際長度大于m,則按實(shí)際長度輸出。%ld%lo%lx%lu輸出長整型數(shù)據(jù)
例3.3#include<stdio.h>main(){inta=12,b=123,c=12345;longd=123456;printf("%d,%4d,%4d,%ld,%8ld\n",a,b,c,d,d);printf("%o,%4o,%4o,%lo%8lo\n",a,b,c,d,d);printf("%x,%4x,%4x,%lx,%8lx\n",a,b,c,d,d);printf("%u,%4u,%4u,%lu,%8lu\n",a,b,c,d,d);}運(yùn)行結(jié)果:3.2格式輸入輸出函數(shù)
對于一個(gè)數(shù)可以以不同的形式輸出,好比一個(gè)人在社會(huì)中有很多角色一樣,請讀者自己體會(huì)。3.2格式輸入輸出函數(shù)2)c格式字符用來輸出單個(gè)字符。形式說明%c按單個(gè)字符輸出%mcm為整數(shù),按m指定的字段寬度輸出,若m>1,輸出時(shí),向右對齊,左端補(bǔ)以空格。例3.4#include<stdio.h>main(){charc='a';intn=98;printf("%c,%d\n",c,n);printf("%4c,%4d\n",c,n);printf("%d,%c\n",c,n);printf("%4d,%4c\n",c,n);}3.2格式輸入輸出函數(shù)運(yùn)行結(jié)果:
如果整數(shù)的值在0~255范圍內(nèi),也可以用字符形式輸出;反之,字符數(shù)據(jù)也能用整型數(shù)格式輸出。3.2格式輸入輸出函數(shù)3)s格式字符
用來輸出字符串。形式說明%s按字符串的原樣輸出。%msm為整數(shù),按m指定的字段寬度輸出,若實(shí)際字符串長度大于m,則按實(shí)際長度輸出;若實(shí)際字符串長度小于m,輸出時(shí),向右對齊,左端補(bǔ)以空格。%-msm為整數(shù),按m指定的字段寬度輸出,若實(shí)際字符串長度大于m,則按實(shí)際長度輸出;若實(shí)際字符串長度小于m,輸出時(shí),向左對齊,右端補(bǔ)以空格。%m.ns輸出指定寬度為m,從字符串左端取出n個(gè)字符輸出。若n<m,則左邊補(bǔ)足空格;若n>m,按n個(gè)字符輸出。%-m.ns輸出指定寬度為m,從字符串左端取出n個(gè)字符輸出。若n<m,則右邊補(bǔ)足空格;若n>m,按n個(gè)字符輸出。3.2格式輸入輸出函數(shù)例3.5#include<stdio.h>main(){printf("%s\n","English");printf("%4s\n","English");printf("%8s\n","English");printf("%-8s\n","English");printf("%8.2s\n","English");printf("%-8.2s\n","English");}運(yùn)行結(jié)果:
3.2格式輸入輸出函數(shù)4)f格式字符
用來輸出實(shí)型數(shù),以小數(shù)形式輸出。形式說明%f按格式輸出,整數(shù)部分全部輸出,小數(shù)不分取6位。并非全部數(shù)字都是有效數(shù)字,單精度實(shí)型數(shù)有效位為7位,雙精度實(shí)型數(shù)有效位為16位。%m.nf輸出指定寬度為m(包含小數(shù)點(diǎn)),保留n位小數(shù)。若實(shí)際長度大于m,則按實(shí)際長度輸出;若實(shí)際長度小于m,則左端補(bǔ)足空格。%-m.nf輸出指定寬度為m(包含小數(shù)點(diǎn)),保留n位小數(shù)。若實(shí)際長度大于m,則按實(shí)際長度輸出;若實(shí)際長度小于m,則右端補(bǔ)足空格。3.2格式輸入輸出函數(shù)例3.6#include<stdio.h>main(){floatf=1234.1234;doubled=12345.123456789;printf("%f,%lf\n",f,d);printf("%10.2f,%10.2lf\n",f,d);printf("%-10.2f,%-10.2lf\n",f,d);}運(yùn)行結(jié)果:
可以看出,單精度實(shí)型數(shù)f只有前7位是有效數(shù)字,而最后三位是無意義的。
3.2格式輸入輸出函數(shù)5)e格式字符
以指數(shù)形式輸出實(shí)數(shù)。指數(shù)形式為:
d.ddddde±xx
小數(shù)點(diǎn)前有1位非0數(shù)字,小數(shù)點(diǎn)占1位,小數(shù)點(diǎn)后的數(shù)字個(gè)數(shù)為n-1,n表示輸出精度(有效數(shù)字位數(shù)),格式轉(zhuǎn)換時(shí)四舍五入處理。指數(shù)部分包括字母e(或E)、正負(fù)號和至少兩位數(shù)字,如e+03。形式說明%e按系統(tǒng)規(guī)定輸出指數(shù)形式的實(shí)型數(shù),系統(tǒng)規(guī)定:有效數(shù)字位數(shù)n=6,小數(shù)點(diǎn)后保留5位,轉(zhuǎn)換時(shí)按四舍五入處理。%m.ne輸出指定寬度為m(包含小數(shù)點(diǎn)),若實(shí)際長度小于m,則左端補(bǔ)足空格(對%-m.ne,則右端補(bǔ)空格)。若實(shí)際長度大于m,則按實(shí)際長度輸出,保留n-1位小數(shù),轉(zhuǎn)換時(shí)按四舍五入。3.2格式輸入輸出函數(shù)例3.7#include<stdio.h>main(){floatf=123.456;printf("%e,%10.2e\n",f,f);}運(yùn)行結(jié)果:
3.2格式輸入輸出函數(shù)6)g格式字符
用來輸出實(shí)數(shù),它根據(jù)數(shù)值的大小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無意義的零。例3.8#include<stdio.h>main(){floatf=123.456;printf("%f,%e,%g\n",f,f,f);}運(yùn)行結(jié)果:
3.2格式輸入輸出函數(shù)3.2.2格式輸入函數(shù)scanf
函數(shù)scanf的作用是從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)按照指定的格式把它們送到相應(yīng)的數(shù)據(jù)存儲(chǔ)地址中。調(diào)用scanf函數(shù)的一般格式如下:
scanf(格式控制字符串,地址表); 格式控制字符的含義同printf()函數(shù)。地址表是由若干個(gè)變量的地址組成的,它們之間用逗號隔開。變量的地址可由取地址運(yùn)算符“&”得到(如變量a的地址為&a)。3.2格式輸入輸出函數(shù)例3.9用戶從鍵盤輸入一個(gè)整數(shù)、一個(gè)實(shí)數(shù)和一個(gè)字符。#include<stdio.h>main(){inti;floatf;charc;scanf("%d%f%c",&i,&f,&c);printf("%d,%f,%c\n",i,f,c);}運(yùn)行結(jié)果:由于%f說明中沒有指明精度,小數(shù)點(diǎn)后面保留6位小數(shù)。3.2格式輸入輸出函數(shù)
使用scanf函數(shù)應(yīng)注意以下幾個(gè)方面:
1.格式控制字符中的每個(gè)格式說明都必須與地址表中一個(gè)變量地址對應(yīng),類型應(yīng)一致(例如3.9中,%d與&i對應(yīng),%c與&c對應(yīng),%f與&f對應(yīng))。
◆
2.當(dāng)格式控制字符之間沒有任何字符時(shí),輸入數(shù)據(jù)之間用一個(gè)或多個(gè)空格、(Tab)鍵或回車鍵分開。下面輸入均為合法:例如:
scanf("%d%d%d",&a,&b,&c);
可用以下方式輸入a、b、c的值:
1)123(按回車?。?/p>
2)1(按回車鍵)
23(按回車鍵)
3)1<Tab>2(按回車鍵)
3
只要是不可顯的字符都可以作為上面數(shù)據(jù)間的間隔符。3.2格式輸入輸出函數(shù)
▲
3.若格式控制字符之間其他字符,則輸入數(shù)據(jù)時(shí),應(yīng)輸入這些字符間隔。例如:
scanf("%d,%d,%d",&a,&b,&c);
用以下方式輸入a,b,c的值。
44,55,66(按回車鍵)
*4.在輸入字符型數(shù)據(jù)時(shí),由于空格也作為有效字符輸入,因此不需要空格作為間隔時(shí),只要直接輸入字符就可以。例如scanf(“%c%c“,&a,&b)
輸入數(shù)據(jù)時(shí)輸入ch時(shí),由于字符變量只能每次接收一個(gè)字符,所以中間不加上空隔,加上空格的話,如下面例中。3.2格式輸入輸出函數(shù)例3.10#include<stdio.h>main(){chara,b;scanf("%c%c",&a,&b);printf("%c%c\n",a,b);}運(yùn)行結(jié)果:當(dāng)輸入c
h時(shí),變量b接收的字符是空格,所以空格也作為有效字符。3.2格式輸入輸出函數(shù)■
5.可以在格式控制字符的前面指定輸入數(shù)據(jù)的長度,系統(tǒng)將自動(dòng)按此長度截取所需要的數(shù)據(jù)。
例3.11#include<stdio.h>main(){inta,b;scanf("%3d%2d",&a,&b);printf("%d,%2d",a,b);}
運(yùn)行結(jié)果:如果用戶輸入12345時(shí),系統(tǒng)自動(dòng)地把123賦給a,將45賦給b。3.2格式輸入輸出函數(shù)
6.若%后面如有“*”,表示本輸入項(xiàng)在讀入后不賦給任何變量。例如:scanf(“%d%*d%d”,&a,&b,&c);如果用戶輸入112233,則系統(tǒng)自動(dòng)將11賦給a,把33賦給b,第二數(shù)22雖被讀入,但不賦給任何變量。例3.12#include<stdio.h>main(){inta,b,c;scanf("%d%*d%d",&a,&b,&c);printf("%d,%d",a,b);}運(yùn)行結(jié)果:22沒有賦給變量b,反而33給了變量b。3.2格式輸入輸出函數(shù)
7.輸入數(shù)據(jù)時(shí)不能規(guī)定精度。例如
scanf(“7.2f”,&a);
上面的語句是不合法的。
8.在scanf函數(shù)中盡量不要加“\n“,否則程序有問題。請讀者自己上機(jī)測試。3.3應(yīng)用舉例例3.13從鍵盤上輸入任意三個(gè)數(shù),然后輸出這三個(gè)數(shù)并計(jì)算三個(gè)數(shù)的平均值。#include<stdio.h>main(){
floataverage,a,b,c;scanf("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年水利工程專用水泥涵管采購與銷售合同范本3篇
- 架子工合同范例
- 國內(nèi)大宗貿(mào)易合同范例
- 購買活動(dòng)服務(wù)合同范例
- 2024年法式餐廳廚師雇傭合同3篇
- 游戲廣告加工合同范例
- 買辦代理合同范例
- 出租廠子廠房合同范例
- 勞務(wù)聘任合同范例
- 光優(yōu)合同范例
- 湖南省六年級上冊數(shù)學(xué)期末試卷(含答案)
- 私人影院管理制度
- 人機(jī)工程評價(jià)表
- 初三英語閱讀理解專項(xiàng)訓(xùn)練100(附答案)
- CT球管標(biāo)準(zhǔn)規(guī)定
- 小學(xué)信息技術(shù)全冊教案(蘇教版)
- 自行車和自行車制造行業(yè)研究報(bào)告
- 2023基因行業(yè)藍(lán)皮書-基因慧
- 多選題數(shù)據(jù)的SPSS多重對應(yīng)分析操作方法
- 企業(yè)安全風(fēng)險(xiǎn)分級管控21類表格、標(biāo)牌
- 設(shè)計(jì)總體服務(wù)方案
評論
0/150
提交評論