




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 基本輸入輸出引言:數(shù)據(jù)輸入輸出在C語言中的實(shí)現(xiàn) C語言中輸入和輸出操作是通過函數(shù)來實(shí)現(xiàn)的。 C語言的函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)”,其中包括:putchar(輸出字符)、getchar(輸入字符)、printf(格式輸出)、scanf(格式輸入)、puts(輸出字符串)、gets(輸入字符串)。注意:以上這些都是函數(shù)名,不是C語言的關(guān)鍵字。數(shù)據(jù)輸入輸出在C語言中的實(shí)現(xiàn)在使用庫函數(shù)時(shí),要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中。#include命令都是放在程序的開頭,因此這類文件被稱為“頭文件”, 擴(kuò)展名為.h。如:#include 或 #include
2、“stdio.h”說明:使用printf和scanf這兩個(gè)函數(shù)可不加#include命令。4.1 C語句概述 C語句是用來完成一定操作任務(wù)的。一個(gè)函數(shù)的執(zhí)行部分是由語句組成的。C語句分為五類:表達(dá)式語句、函數(shù)調(diào)用語句、控制語句、空語句、復(fù)合語句4.1 C語言的語句(1)表達(dá)式語句 由一個(gè)表達(dá)式加上一個(gè)分號(hào)構(gòu)成,最常見的是賦值語句。 如:a=3為賦值表達(dá)式,a=3;為賦值語句。 表達(dá)式和表達(dá)式語句的區(qū)別:在表達(dá)式后加上一個(gè)分號(hào)就構(gòu)成了表達(dá)式語句。4.1 C語言的語句(2)函數(shù)調(diào)用語句 由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成。 如:printf(“good!”); scanf(“%d”,&a); putch
3、ar(c);4.1 C語言的語句(3)控制語句 if()else (條件語句) for() (循環(huán)語句) while() (循環(huán)語句) dowhile() (循環(huán)語句) continue (結(jié)束本次循環(huán)語句) break (中止執(zhí)行switch或循環(huán)語句) switch (多分支選擇語句) goto (轉(zhuǎn)向語句) return (從函數(shù)返回語句)4.1 C語言的語句(4)復(fù)合語句用 括起來的多個(gè)語句,又稱分程序。如: a=b+c; c=x/y; printf(%d,%d,a,c); 注意:復(fù)合語句中最后一個(gè)語句的分號(hào)不能缺少。4.1 C語言的語句(5)空語句 只有一個(gè)分號(hào)的語句,什么也不執(zhí)行。
4、有時(shí)可以用來延時(shí)。如:for(i=1;i=100;i+) ;注意:任何表達(dá)式都可以加上分號(hào)而成為語句。如:i+;x+y;都是合法的語句,只是并不把運(yùn)算結(jié)果賦給另一個(gè)變量。4.2 字符數(shù)據(jù)的輸入輸出 4.2.1 putchar函數(shù)(字符輸出函數(shù)) putchar函數(shù)的作用:向終端輸出一個(gè)字符,可以是普通字符,也可以是控制字符和其他轉(zhuǎn)義字符。 一般格式:putchar(字符常量或變量); 如:putchar(a); putchar(n); char c=b; putchar(c);4.2.1 putchar函數(shù)(字符輸出函數(shù))如: #include main( ) char a; int i; i
5、=65; a=B; putchar(a); putchar(i); putchar(n); putchar(101);運(yùn)行程序BAA4.2.2 getchar函數(shù)(字符輸入函數(shù)) getchar的作用:從終端輸入一個(gè)字符。getchar的一般形式:getchar( )getchar函數(shù)是無參函數(shù),括號(hào)里面沒有參數(shù)。getchar函數(shù)的值就是從輸入設(shè)備得到的字符,可以將這個(gè)字符賦給一個(gè)字符變量或整型變量,也可以作為表達(dá)式的一部分。4.2.2 getchar函數(shù)(字符輸入函數(shù))例:將輸入的字符賦給字符變量#include main() char c; c=getchar(); putchar(c)
6、;運(yùn)行程序輸入:S輸出:S例:將輸入的字符作為表達(dá)式的一部分。putchar(getchar(); printf(“%d”,getchar(); (1)getchar函數(shù)只能接收一個(gè)字符,putchar函數(shù)只能輸出一個(gè)字符。(2)一個(gè)函數(shù)要調(diào)用putchar( ), getchar( )函數(shù),應(yīng)該在其前面加上包含命令: #include 使用字符輸入輸出函數(shù)的注意事項(xiàng)4.3 格式輸入與輸出 4.3.1 printf函數(shù)(格式輸出函數(shù)) printf函數(shù)的作用:向終端輸出若干個(gè)任意類型的數(shù)據(jù)。printf與putchar的區(qū)別:printf函數(shù)可以輸出多個(gè)數(shù)據(jù),且為任意類型,而putchar只能
7、輸出字符型數(shù)據(jù),且只能是一個(gè)字符。 4.3.1 printf函數(shù)(格式輸出函數(shù)) 1、printf函數(shù)的一般格式printf(“格式控制字符串”,輸出列表);如:printf(%d,%cn“ i,c);格式控制字符串包括兩種信息:格式說明,由”%”和格式字符組成,如%d,%f等。其作用是將輸出的數(shù)據(jù)轉(zhuǎn)換為指定的格式輸出。 普通字符,即需要原樣輸出的字符。 4.3.1 printf函數(shù)(格式輸出函數(shù)) 2、格式字符 C語言要求對(duì)于不同類型的數(shù)據(jù)要采用不同的格式字符來輸出。(詳見P61表4.1)格式字符說 明d輸出十進(jìn)制整數(shù)o輸出八進(jìn)制整數(shù)X,x輸出十六進(jìn)制整數(shù)u輸出十進(jìn)制無符號(hào)整數(shù)f以小數(shù)形式輸
8、出實(shí)數(shù)E,e以指數(shù)形式輸出實(shí)數(shù)G,g以小數(shù)或指數(shù)形式中較短的寬度輸出實(shí)數(shù)c輸出單個(gè)字符s輸出字符串(1)d格式符作用:用來輸出十進(jìn)制整數(shù)。%d,按整型數(shù)據(jù)的實(shí)際長度輸出。%md,m為指定的輸出字段的寬度。 如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。 %-md,如果數(shù)據(jù)的位數(shù)小于m,則右端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。例:int a=123,b=23456; printf(“a=%4d,b=%4d”,a,b);輸出結(jié)果:a=123,b=23456例:int a=123,b=23456; printf(“a=%-4d,b=%-4d”,a,b);輸出結(jié)果:a=123
9、,b=23456記憶方法:正左負(fù)右,即正數(shù)左補(bǔ)空格,負(fù)數(shù)右補(bǔ)空格。(1)d格式符 例:a=123;b=12345;printf(“%05d,%-08d,%4d”,a,b,b); 輸出結(jié)果為: 00123,12345,12345補(bǔ)充說明(請記在書上P61空白處)%0md格式:當(dāng)數(shù)據(jù)位數(shù)小于m時(shí),左補(bǔ)0 。%-0md格式:仍是右補(bǔ)空格,因?yàn)橛已a(bǔ)0會(huì)改變數(shù)值大小。運(yùn)行程序(1)d格式符%ld,用于輸出長整型數(shù)據(jù)對(duì)于long型數(shù)據(jù),當(dāng)整型數(shù)據(jù)的范圍超出-3276832767時(shí),必須用%ld格式輸出,否則會(huì)出錯(cuò))對(duì)于long型數(shù)據(jù)也可以指定數(shù)據(jù)長度,如“%8ld”。如:long a=1234567;pr
10、intf(“%ldn”,a);printf(“%10ld”,a);輸出結(jié)果為:1234567 1234567(2)o格式符 例: int a=-1; printf(%d,%o,a,a); 輸出: -1,177777例:long int a=123456;printf(“%ld,%lo,%8lo”,a,a,a);輸出結(jié)果為:123456,361100, 361100作用:以八進(jìn)制數(shù)形式輸出整數(shù),對(duì)于長整數(shù)可以用”%lo”格式輸出,也可以指定輸出字段的寬度。注意:o格式符不會(huì)輸出負(fù)的八進(jìn)制整數(shù),因?yàn)槠鋵⒎?hào)位作為八進(jìn)制數(shù)的一部分。-1的補(bǔ)碼為1111 1111 1111 1111(3)x,X格式符
11、作用:以十六進(jìn)制數(shù)形式輸出整數(shù)。如:int a=-1;printf(“%x,%8x”,a,a);輸出結(jié)果為:ffff, ffff(4)u格式符作用:以十進(jìn)制無符號(hào)形式輸出整型數(shù)據(jù)。如:unsigned int a=65535;int b=-3;printf(“a=%un”,a);printf(“b=%un”,b);輸出結(jié)果:a=65535b=65533運(yùn)行程序(5)c格式符作用:用來輸出一個(gè)字符。如:char c=A;int b=65;printf(“%c,%d,%3cn”,c,c,c);printf(“%c,%d,%3cn”,b,b,d);(6)s格式符作用:用于輸出一個(gè)字符串 %s:按實(shí)際
12、長度輸出一個(gè)字符串如printf(“%s”, “China”); 輸出“China”字符串。 %ms:按指定長度m輸出字符串,如果字符串長度大于m,則將字符串全部輸出,若小于m,則左補(bǔ)空格(%-ms右補(bǔ)空格)。%m.ns:取字符串左端n個(gè)字符,并按指定寬度m輸出,若n小于m,則左補(bǔ)空格(%-m.ns右補(bǔ)空格),否則輸出n列 。(6)s格式符如:main() printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); 輸出結(jié)果為: CHINA, CH,CHIN,CHI運(yùn)行程序(7)f 格式符作用:以小數(shù)形式輸出實(shí)數(shù)(
13、包括單、雙精度)。%f:整數(shù)部分全部輸出,小數(shù)部分輸出6位。%m.nf:指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補(bǔ)空格( %-m.nf右端補(bǔ)空格)。注意:小數(shù)點(diǎn)占一位。 %lf:輸出雙精度實(shí)數(shù)。注意:單精度實(shí)數(shù)的有效位數(shù)一般為7位,雙精度為16位,用%f或%lf格式輸出時(shí),小數(shù)都占6位。(7)f 格式符如:main()float x,y;double a,b;x=111111.111;y=222222.222;a=1111111111111.111111111;b=2222222222222.222222222;printf(“%f,%fn”,x,y);printf(
14、“%f,%fn”,a,b); 運(yùn)行程序(7)f 格式符如:main()float f=123.456;printf(“%f,%10f,%10.2f,%.2f,%-10.2fn”,f,f,f,f,f);輸出結(jié)果為:123.456001,123.456001, 123.46,123.46,123.46運(yùn)行程序保留小數(shù)位數(shù)時(shí)進(jìn)行了四舍五入(8)e格式符作用:以指數(shù)形式輸出實(shí)數(shù)%e 不指定輸出數(shù)據(jù)的寬度和小數(shù)位數(shù),由系統(tǒng)自動(dòng)給出5位小數(shù),指數(shù)部分占4位。數(shù)值按規(guī)范化指數(shù)形式輸出(小數(shù)點(diǎn)前必須有且只有1位非零數(shù)字)。%e格式輸出的實(shí)數(shù)共占11列寬。 如:1.23456e+02%m.ne和%-m.ne,
15、n指擬輸出數(shù)據(jù)的小數(shù)位數(shù)。(8)e格式符如:printf(“%e,%e,%e”,12345.678,0.12345,-123.456);運(yùn)行程序輸出結(jié)果為:1.23457e+04,1.23450e-01,-1.23456e+024.3.2 scanf函數(shù)(格式輸入函數(shù))1、一般形式 scanf(“格式控制字符串”,地址表列);格式字符說 明d用來輸入十進(jìn)制整數(shù)c用來輸入單個(gè)字符f用來輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入s用來輸入字符串(1)d格式符int a,b;scanf(“%d%d”, &a, &b);&為地址運(yùn)算符,&a指a內(nèi)存中的地址。以下輸入方法均為合法:3 4 3 4 (多個(gè)空格
16、)3 (回車健) 4 3(tab鍵)4 “%d%d”表示按十進(jìn)制整數(shù)形式輸入數(shù)據(jù)。輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格、回車鍵、tab 鍵間隔。程序驗(yàn)證(1)d格式符scanf(“%d,%d”, &a, &b);輸入時(shí)注意:“格式控制字符串”中的普通字符要原樣輸入。程序驗(yàn)證正確輸入方法:3,4scanf(“a=%d,b=%d”, &a, &b);正確輸入方法:a=3,b=4(1)d格式符如:scanf(“%5d%5d”, & a, & b);格式控制串中可以規(guī)定輸入數(shù)據(jù)的寬度。輸入:123456763則:a為12345 , b為6763程序驗(yàn)證(1)d格式符“%*d”表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量如:scanf(“%d%*d%d”,&a,&b);輸入:3 5 6則:a的值為3,b的值為6程序驗(yàn)證(2)f格式符f格式符用于輸入單精度實(shí)數(shù)“%f%f”與“%d%d”類似,兩個(gè)實(shí)數(shù)之間可以用空格、TAB鍵、回車鍵間隔。輸入時(shí)可以規(guī)定實(shí)數(shù)的寬度如:float m,n; scanf(“%7f%7f”,&m,&n);合法但是不能在輸入實(shí)數(shù)時(shí)規(guī)定其精度。如:scanf(“%7.2f”,&m);不合法的程序驗(yàn)證(3)c格式符“%c”格式用于輸入單個(gè)字符用“%c%c”輸入字符時(shí),空格作為有效字符賦給變量。如:scanf(“%c%c%c”,&a,&b,
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高危工作安全協(xié)議書
- 超市利潤分紅協(xié)議書
- 道路遷墳火化協(xié)議書
- 金供應(yīng)商合同協(xié)議書
- 銷售生產(chǎn)訂單協(xié)議書
- 餐飲供應(yīng)合同協(xié)議書
- 農(nóng)村自流地?fù)Q地協(xié)議書
- 餐具承包合同協(xié)議書
- 買車位只有認(rèn)購協(xié)議書
- 金融物資轉(zhuǎn)讓協(xié)議書
- 水利工程合同工程完工驗(yàn)收工程建設(shè)管理工作報(bào)告
- photoshop實(shí)訓(xùn)指導(dǎo)書
- 多級(jí)泵檢修及維護(hù)(1)
- 涵洞孔徑計(jì)算
- 測量未知電阻的方法
- 中國民主同盟入盟申請表
- SAP項(xiàng)目用戶操作手冊CO月結(jié)
- 觀感質(zhì)量檢查表
- 企業(yè)信息登記表
- 孫志剛事件1doc
- 窯爐課程設(shè)計(jì)-年產(chǎn)50萬件衛(wèi)生潔具隧道窯設(shè)計(jì).doc
評(píng)論
0/150
提交評(píng)論