版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章鍵盤(pán)輸入和屏幕輸出
數(shù)據(jù)輸入輸出的概念
及在C語(yǔ)言中的實(shí)現(xiàn)(一).所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的輸出:從計(jì)算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))
輸出數(shù)據(jù)輸入:從輸入設(shè)備(鍵盤(pán),鼠標(biāo),掃描儀)向計(jì)算機(jī)輸入數(shù)據(jù).(二).C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由C函數(shù)庫(kù)中的函數(shù)來(lái)實(shí)現(xiàn)的例如:字符輸入函數(shù):getchar字符輸出函數(shù):putchar格式輸入函數(shù):scanf格式輸出函數(shù):printf字符串輸入函數(shù):gets字?jǐn)?shù)穿輸出函數(shù):puts(三).在使用系統(tǒng)庫(kù)函數(shù)時(shí),要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),文件開(kāi)頭應(yīng)該有:#include“stdio.h”
或:#include<stdio.h>Devc++環(huán)境下還要包含:conio.h頭文件4.1字符數(shù)據(jù)的輸入輸出4.2簡(jiǎn)單的格式輸入輸出4.3較復(fù)雜格式的輸入輸出4.1字符數(shù)據(jù)的輸入輸出
4.1.1用putchar函數(shù)輸出一個(gè)字符
putchar函數(shù)(字符輸出函數(shù))的作用是向終端輸出一個(gè)字符。一般形式為putchar(c)c可以是字符型變量或整型變量例4.1輸出單個(gè)字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運(yùn)行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運(yùn)行結(jié)果:BOY4.1.2用getchar函數(shù)輸入一個(gè)字符
getchar函數(shù)(字符輸入函數(shù))的作用是從計(jì)算機(jī)終端輸入一個(gè)字符。
getchar函數(shù)沒(méi)有參數(shù),一般形式為
getchar()函數(shù)的值就是從輸入設(shè)備得到的字符例4.2輸入單個(gè)字符。
#include<stdio.h>
intmain()
{
charc;
c=getchar();
putchar(c);
putchar(‘\n’);return0;
}
4.2簡(jiǎn)單的格式輸入與輸出
4.2.1用簡(jiǎn)單的printf函數(shù)輸出數(shù)據(jù)printf函數(shù)(格式輸出函數(shù))的作用是向終端(或系統(tǒng)隱含指定的輸出設(shè)備)輸出若干個(gè)任意類(lèi)型的數(shù)據(jù)
。printf函數(shù)的一般格式為:
printf(格式控制,輸出表列)例:
printf(”%d,%c\n”,i,c)printf函數(shù)的參數(shù)包括兩部分:
(1)“格式控制”是用雙撇號(hào)括起來(lái)的字符串,也稱(chēng)“轉(zhuǎn)換控制字符串”,它包括兩種信息。
①格式說(shuō)明。格式說(shuō)明由“%”和格式字符組成,如%d、%f等。它的作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。格式說(shuō)明總是由“%”字符開(kāi)始的。②普通字符。普通字符即需要原樣輸出的字符。例如上面printf函數(shù)中雙撇號(hào)內(nèi)的逗號(hào)、空格和換行符。
(2)“輸出表列”是需要輸出的一些數(shù)據(jù),可以是常量、變量或表達(dá)式。
printf函數(shù)的例子:
printf(“a=%db=%d”,a,b)若a=3,b=4輸出為a=3b=4基本的格式字符有以下幾種:
⑴d格式符。按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。
⑵i格式符。作用與d格式符相同,按十進(jìn)制整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。一般習(xí)慣用%d而少用%i。⑶c格式符。用來(lái)輸出一個(gè)字符。
一個(gè)值在0~255范圍內(nèi)的整數(shù),也可以用“%c”使之按字符形式輸出例4.3字符數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{charc='a';
inti=97;
printf("%c,%d\n",c,c);
printf("%c,%d\n",i,i);
}運(yùn)行結(jié)果:a,97a,97
⑷s格式符,用來(lái)輸出一個(gè)字符串。
例:
printf(″%s″,″CHINA″);
輸出字符串“CHINA”(不包括雙引號(hào))⑸f格式符。用來(lái)輸出實(shí)數(shù)(包括單、雙精度),以小數(shù)形式輸出,不指定整個(gè)字段的長(zhǎng)度,由系統(tǒng)自動(dòng)指定。一般的處理方法是:整數(shù)部分全部輸出,并輸出6位小數(shù)。
注意:在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字。單精度實(shí)數(shù)的有效位數(shù)一般為6-7位,雙精度實(shí)數(shù)的有效位數(shù)一般為15-16位。例4.4輸出實(shí)數(shù)時(shí)的有效位數(shù)。
#include<stdio.h>
voidmain()
{floatx,y;
x=111111.111;y=222222.222;
printf("%f\n",x+y);
}運(yùn)行結(jié)果:333333.328125結(jié)果中只有前七位是有效數(shù)字。由于x和y是單精度變量,所以x+y也只能保證7位的精度,后面幾位是沒(méi)有意義的。
例4.5輸出雙精度數(shù)時(shí)的有效位數(shù)。
#include<stdio.h>
voidmain()
{doublex,y;
x=11111111.11111111;
y=22222222.22222222;
printf("%f\n",x+y);
}運(yùn)行結(jié)果:33333333.333333x和y是雙精度變量,能提供16位精度,但是由于用%f格式輸出,只能輸出6位小數(shù),有兩位被省掉了。(6)e格式符,用格式說(shuō)明%e指定以指數(shù)形式輸出實(shí)數(shù)。
例:printf(″%e″,123.456);輸出如下
1.23460
e+002
6列5列C編譯系統(tǒng)自動(dòng)指定給出數(shù)字部分的小數(shù)位數(shù)為6位,指數(shù)部分占5位4.2.2用簡(jiǎn)單的scanf函數(shù)輸入數(shù)據(jù)scanf函數(shù)作用:按照變量在內(nèi)存的地址將變量值存進(jìn)去。一般格式:scanf(格式控制,地址表列)同printf函數(shù)是由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址例4.6用scanf函數(shù)輸入數(shù)據(jù)。
#include<stdio.h>
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
運(yùn)行情況:
345(輸入a,b,c的值,)
3,4,5(輸出a,b,c的值)a在內(nèi)存中的地址&是地址運(yùn)算符scanf函數(shù)的格式說(shuō)明與printf函數(shù)的相似,以%開(kāi)始,以一個(gè)格式字符結(jié)束,中間可插入附加的字符。
例:scanf(”%d%d%d”,&a,&b,&c);/*格式控制字符串中包含3個(gè)格式說(shuō)明符%d*/scanf(”a=%db=%dc=%d”,&a,&b,&c);/*格式控制字符串中包含格式說(shuō)明符以外的字符*/說(shuō)明:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不應(yīng)是變量名。(2)如果在“格式控制”字符串中除了格式說(shuō)明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)在對(duì)應(yīng)位置應(yīng)輸入與這些字符相同的字符。(3)在用“%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。(4)在輸入數(shù)據(jù)時(shí),空格,“回車(chē)”、“跳格”(Tab)鍵或遇非法輸入,認(rèn)為該數(shù)據(jù)結(jié)束。(5)對(duì)unsigned型變量所需的數(shù)據(jù),可以用%u或%d格式輸入。4.3較復(fù)雜的格式輸入與輸出
4.3.1輸出數(shù)據(jù)格式控制除了上節(jié)所介紹的基本的格式控制外,還可以用下面一些格式符和附加字符。⑴%md。m為指定的輸出字段的寬度。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。例:printf(“%4d,%4d,a,b”);
若:a=123,d=12345,則輸出結(jié)果為:123,12345⑵%ld。對(duì)于int型數(shù)據(jù)占2字節(jié)的系統(tǒng),在輸出長(zhǎng)整型數(shù)據(jù)時(shí)要在格式字符d前面加一個(gè)英文字毋l。例:
longa=135790;/*定義a為長(zhǎng)整型變量*/printf(“%ld”,a);%d只適用于范圍為-32768~32767的整型數(shù)據(jù),超過(guò)此范圍的整數(shù),應(yīng)該用%ld輸出說(shuō)明:如果用的是VC++6.0,由于int型和long型數(shù)據(jù)都分配4個(gè)字節(jié),因此用%d可以輸出int和long型數(shù)據(jù),不必要用%ld。
⑶%o。以8進(jìn)制整數(shù)形式輸出。由于是將內(nèi)存單元中的各位的值(0或1)按八進(jìn)制形式輸出,因此輸出的數(shù)值不帶符號(hào),即將符號(hào)位也一起作為八進(jìn)制數(shù)的一部分輸出。例:inta=-1;printf("%d,%o",a,a);
-1在內(nèi)存單元中的存放形式(以補(bǔ)碼形式存放)如下:輸出為:
-1,1777771111111111111111用%d輸出的結(jié)果1,111,111,111,111,111||||||177777二進(jìn)數(shù)111就是8進(jìn)數(shù)7。因此上面的數(shù)用8進(jìn)制數(shù)表示為17777⑷%x。以16進(jìn)制數(shù)形式輸出整數(shù)。同樣不會(huì)出現(xiàn)負(fù)的十六進(jìn)制數(shù)。例:
inta=-1;printf(“%x,%o,%d”,a,a,a);
輸出結(jié)果為
ffff,177777,-1
同樣可以用“%1x”輸出長(zhǎng)整型數(shù),也可以指定輸出字段的寬度,如“%12x”。⑸%u。用來(lái)輸出無(wú)符號(hào)(unsigned)型數(shù)據(jù),以十進(jìn)制整數(shù)形式輸出。一個(gè)有符號(hào)整數(shù)(int型)也可以用%u格式輸出;反之,一個(gè)unsigned型數(shù)據(jù)也可以用%d格式輸出。按相互賦值的規(guī)則處理。unsigned型數(shù)據(jù)也可用%o或%x格式輸出。
⑹%mc。用來(lái)指定輸出字符數(shù)據(jù)的寬度m
如果有printf(“%3c”,c);
則輸出“a”,即c變量輸出占3列,前2列補(bǔ)空格。例4.7無(wú)符號(hào)數(shù)據(jù)的輸出。
#include<stdio.h>
voidmain()
{
unsignedinta=65535;intb=-2;
printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
printf(“b=%d,%o,%x,%u\n”,b,b,b,b);
}
TurboC2.0環(huán)境下的運(yùn)行結(jié)果:
a=-1,177777,ffff,65535
b=-2,177776,fffe,65534VC++6.0環(huán)境下的運(yùn)行結(jié)果:
a=65535,177777,ffff,65535
b=-2,37777777776,fffffffe,4294967294⑺%ms,指定輸出的字符串占m列。如果字符串本身長(zhǎng)度大于m,則突破m的限制,將字符串全部輸出。若串長(zhǎng)小于m,則左補(bǔ)空格。
%-ms,如果串長(zhǎng)小于m,則在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。
%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。
%-m.ns,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,則m自動(dòng)?。钪担幢WCn個(gè)字符正常輸出。⑻%m.nf,指定輸出的實(shí)數(shù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。
%-m.nf與%m.nf基本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。例4.8字符串的輸出。
#include<stdio.h>
voidmain()
{
printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);
}
運(yùn)行結(jié)果:
CHINA,CH,CHIN,CHI例4.9輸出實(shí)數(shù)時(shí)指定小數(shù)位數(shù)。
#include<stdio.h>
voidmain(){
floatf=123.456;
printf(“%f,%10f,%10.2f,%.2f,%-10.2f\n”
,f,f,f,f,f);
}
運(yùn)行結(jié)果:
123.456001123.456001123.46123.46123.46
(9)%m.ne和%-m.ne。m、n和“-”字符的含義與前相同。此處n指擬輸出的數(shù)據(jù)的小數(shù)部分(又稱(chēng)尾數(shù))的小數(shù)位數(shù)。(10)%g,用來(lái)輸出實(shí)數(shù).
它根據(jù)數(shù)值的大小,自動(dòng)選f格式或e格式(選擇輸出時(shí)占寬度較小的一種),且不輸出無(wú)意義的零。
說(shuō)明:除了X,E,G外,其他各式字符必須用小寫(xiě)??梢栽趐rintf函數(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅小區(qū)外墻改造協(xié)議
- 礦泉水廠保溫系統(tǒng)安裝協(xié)議
- 網(wǎng)絡(luò)短視頻副導(dǎo)演招聘協(xié)議
- 裝飾裝修勞務(wù)協(xié)議
- 市場(chǎng)調(diào)研門(mén)頭租賃合同
- 污水處理工程勞務(wù)合同模板
- 創(chuàng)業(yè)學(xué)校租賃合同
- 花藝作品銷(xiāo)售顧問(wèn)聘用協(xié)議
- 建筑工程施工合同:生態(tài)保護(hù)工程
- 花園租賃協(xié)議模板
- 艾灸基礎(chǔ)理論知識(shí)單選題100道及答案解析
- 晨會(huì)安全講話稿范文大全集
- 汽車(chē)美容裝潢技術(shù)電子教案 2.2-汽車(chē)內(nèi)部清洗護(hù)理
- 2023年中國(guó)鐵塔招聘筆試真題
- 江蘇省蘇州市2024-2025學(xué)年高一上學(xué)期11月期中英語(yǔ)試題(無(wú)答案)
- DB11∕T 2103.4-2023 社會(huì)單位和重點(diǎn)場(chǎng)所消防安全管理規(guī)范 第4部分:大型商業(yè)綜合體
- 常規(guī)弱電系統(tǒng)施工單價(jià)表純勞務(wù)
- 2025屆高考語(yǔ)文復(fù)習(xí):小說(shuō)情節(jié)概括+課件
- DL-T5434-2021電力建設(shè)工程監(jiān)理規(guī)范
- (高清版)TDT 1055-2019 第三次全國(guó)國(guó)土調(diào)查技術(shù)規(guī)程
- 天堂旅行團(tuán)讀書(shū)分享
評(píng)論
0/150
提交評(píng)論