第3章格式輸入輸出_第1頁
第3章格式輸入輸出_第2頁
第3章格式輸入輸出_第3頁
第3章格式輸入輸出_第4頁
第3章格式輸入輸出_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第三章第三章 格式化輸入格式化輸入 和輸出和輸出 n一、 字符數(shù)據(jù)的輸入輸出 n二、 格式化的輸入與輸出 程序程序是數(shù)據(jù)數(shù)據(jù)的處理器: 它接收輸入數(shù)據(jù),對數(shù)據(jù)進行處理,再將 得到數(shù)據(jù)輸出。 輸出輸出:從計算機向外部輸出設(shè)備(顯示器,打印機)輸出數(shù) 據(jù) 輸入輸入:從輸入設(shè)備(鍵盤,鼠標(biāo),掃描儀)向計算機輸入數(shù)據(jù). 由于各種設(shè)備差別很大,C緩沖文件系統(tǒng)把每 種設(shè)備都轉(zhuǎn)換成稱為流(stream)的邏輯設(shè)備。 流給程序員提供了與設(shè)備無關(guān)的一致界面,因 此能夠用于寫入磁盤文件的函數(shù)也能用于寫入 顯示器終端。 本章討論標(biāo)準(zhǔn)的輸入和輸出函數(shù)。也就是認(rèn) 為輸入輸出函數(shù)是從鍵盤輸入,向顯示屏輸出。 C語言中標(biāo)準(zhǔn)

2、輸入輸出 C語言函數(shù)庫中有一批“標(biāo)準(zhǔn)輸入輸出函數(shù)標(biāo)準(zhǔn)輸入輸出函數(shù)”,例如: 字符輸入函數(shù):getchar() 字符輸出函數(shù):putchar() 格式輸入函數(shù): scanf() 格式輸出函數(shù):printf() 字符串輸入函數(shù): gets() 字符串輸出函數(shù):puts() 使用這些函數(shù)時,應(yīng)在程序的開頭處寫下預(yù)編譯命令: # include “stdio.h” 或或 # include 用編譯命令“#include”將有關(guān)頭文件“stdio.h”包括到用戶的源文件當(dāng)中。 一、字符數(shù)據(jù)的輸入輸出 1. 字符輸出函數(shù) putchar( ) p函數(shù)作用:向終端輸出一個字符 p一般形式:putchar(c

3、) 輸出變量c的值 C可以是字符型變 量或整型變量 例例1 輸出單個字符。輸出單個字符。 #include void main() char a,b,c; a=:;b=);c=*; putchar(a);putchar(b);putchar(c); putchar(n); 運行結(jié)果: :)* putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n); 運行結(jié)果: : ) * n也可以輸出其他轉(zhuǎn)義字符,例如: putchar(101); (輸出字符A) putchar(); (輸出單引號字符) putchar(015) (

4、輸出回車,不換行,使輸出 的當(dāng)前位置移到本行開頭) 2. 字符輸入函數(shù) p函數(shù)作用:從終端(或系統(tǒng)隱含指定的輸入設(shè) 備)輸入一個字符。 p沒有輸入?yún)?shù),一般形式:getchar() p函數(shù)值:從輸入設(shè)備得到的字符。 例例2 輸入單個字符。輸入單個字符。 #include void main() char c; c=getchar(); putchar(c); putchar(n); 運行程序:運行程序: 從鍵盤輸入字符從鍵盤輸入字符* * 按按EnterEnter鍵鍵 屏幕上將顯示輸出的字符屏幕上將顯示輸出的字符 * * * * * * 也可改寫為: putchar(getchar(); 二、

5、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 一般格式:一般格式: printf(”格式控制格式控制”,輸出列表);輸出列表); 例如:例如:printf(“a=%d,b=%cn”,a,b) 功能:功能:向默認(rèn)輸出設(shè)備(一般是顯示器)輸出向默認(rèn)輸出設(shè)備(一般是顯示器)輸出“輸出列表輸出列表” 中各數(shù)據(jù)項。中各數(shù)據(jù)項。 1. 格式控制 格式控制也稱“控制字符串”,是由雙引號括起來指定輸出輸出 格式的字符串格式的字符串。他由格式說明格式說明、控制字符控制字符和普通字符普通字符三部分 組成。 (1)格式說明)格式說明 構(gòu)成:構(gòu)成:由“%

6、”字符開始后面跟有各種格式字符。 作用:作用:以說明輸出數(shù)據(jù)的類型、形式、長度、小數(shù)位等格式。 C語言提供的常用語言提供的常用printf()函數(shù)格式說明:()函數(shù)格式說明: 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) n1500 1.5*103 =1.5E+3 n0.00001 1*10-5 1E-5 (2)控制字符)控制字符 控制字符用于控制設(shè)備的動作,如下表中制表符“t”、換行 符“n”等。 轉(zhuǎn)義字 符 表示含義 n換行,將當(dāng)前位置移到下一行開頭換行,將當(dāng)前位置移到下一行開頭 t橫向跳格,橫向跳到下一個輸出區(qū)橫向跳格,

7、橫向跳到下一個輸出區(qū) r回車,將當(dāng)前位置移到本行開頭回車,將當(dāng)前位置移到本行開頭 f走紙換頁,將當(dāng)前位置移到下頁開頭走紙換頁,將當(dāng)前位置移到下頁開頭 b退格,將當(dāng)前位置移到前一列退格,將當(dāng)前位置移到前一列 v豎向跳格豎向跳格 例如:例如:printf(“x=%dn”,x); 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) (3)普通字符)普通字符 除格式說明和控制字符之外,其他字符均屬除格式說明和控制字符之外,其他字符均屬普通字符普通字符,打印,打印 時按原樣輸出。時按原樣輸出。例如:例如: printf(“x=%d,%c”,1

8、2,6*8); 其中“x=”和“,”都是普通字符。 輸出結(jié)果是:輸出結(jié)果是:x=12,0 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 2.輸出列表 輸出列表:輸出列表:就是需要輸出的各數(shù)據(jù)項表達式,表達式之間用就是需要輸出的各數(shù)據(jù)項表達式,表達式之間用 逗號分隔。逗號分隔。 注意: (1 1)表達式可以由變量構(gòu)成,也可以由常量構(gòu)成;)表達式可以由變量構(gòu)成,也可以由常量構(gòu)成; (2 2)表達式之間的逗號不是逗號表達式,而是確定計算)表達式之間的逗號不是逗號表達式,而是確定計算 順序的分隔符,自右向左進行的計算。順序的分隔符,自

9、右向左進行的計算。 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 3.附加說明符 在%與格式字符間插入附加說明符,組成: “% ”輸出格式來達到更高輸出格 式要求。 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 附加說明符意 義 l 用于長整型,可以加在格式符用于長整型,可以加在格式符d、o、x、u的的 前面前面 m(正整數(shù))(正整數(shù)) 數(shù)據(jù)輸出的最小寬度,當(dāng)數(shù)據(jù)實際寬度超過數(shù)據(jù)輸出的最小寬度,當(dāng)數(shù)據(jù)實際寬度超過m 時,則按實際寬度輸出,如實際寬度短于時,則按

10、實際寬度輸出,如實際寬度短于m, 則輸出時前面補則輸出時前面補0或空格?;蚩崭?。 .n(正整數(shù))(正整數(shù)) 對實數(shù)表示輸出對實數(shù)表示輸出n位小數(shù),對字符串,表示從位小數(shù),對字符串,表示從 左截取的字符個數(shù)左截取的字符個數(shù) - 輸出的字符或數(shù)字在域內(nèi)向左對齊,默認(rèn)右輸出的字符或數(shù)字在域內(nèi)向左對齊,默認(rèn)右 對齊對齊 +輸出的數(shù)字前帶有正負(fù)號輸出的數(shù)字前帶有正負(fù)號 0在數(shù)據(jù)前多余空格處補在數(shù)據(jù)前多余空格處補0 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 【例【例3.1】輸出整型、長整型、無符號整型數(shù)據(jù) #include “stdi

11、o.h” void main() int y=20; long a=1024; unsigned b=54321; printf(“%d,%ld,%un”,y,a,b); printf(“%+8d,%+8ld,%+8un”,y,a,b); printf(“%08d,%08ld,%08un”,y,a,b); printf(“%-8d,%-8ld,%-8un”,y,a,b); printf(“%o,%lo,%on”,y,a,b); printf(“%#x,%#lx,%#xn”,y,a,b); printf(“%8o,%8lo,%8on”,y,a,b); printf(“%-8x,%-8lx,%-8

12、xn”,y,a,b); 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 運行結(jié)果如下:(運行結(jié)果如下:(代表空格代表空格) 20,1024,54321 +20,+1024,54321 00000020,00001024,00054321 20,1024,54321 24,2000,152061 0 x14,0 x400,0 xd4321 24,2000,152061 14, 400, d4321 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) %-8.1E %-8

13、.3f n86,1040 【例【例3.2】輸出字符和字符串 #include “stdio.h” void main() char ch=a; printf(“%cn”,ch); printf(“%-3cn”,ch); printf(“%3cn”,ch); printf(“%sn”,”programing”); printf(“%15sn”,”programing”); printf(“%-15sn”,”programing”); printf(“%10.5sn”,”programing”); printf(“%-10.5sn”,”programing”); 運行結(jié)果如下: a a a pro

14、graming programing programing progr progr 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 【例【例3.3】輸出實型數(shù)據(jù) #include “stdio.h” void main() float x,y; double a; x=111111.111;y=123.468; a=333333333.33333; clrscr(); printf(“%fn”,x); printf(“%fn”,a); printf(“%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x); pr

15、intf(“%en”,x); printf(“%en”,a); printf(“%10e,%10.2e,%.2e.%-10.2en”,a,a,a,a); printf(“%f,%e,%g”,y,y,y); 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 程序運行結(jié)果如下:程序運行結(jié)果如下: 111111.109375 333333333.333330 111111.109375, 111111.11,111111.11,111111.11 1.11111e+05 3.33333e+08 3.33333e+08, 3.33e+08

16、,3.33e+08.33e+08 123.468002,1.23468e+02,123.468 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 4. 在使用printf()函數(shù)時,還應(yīng)注意以下問題 (1)轉(zhuǎn)換說明與輸出參數(shù)不一致時可能產(chǎn)生錯誤。)轉(zhuǎn)換說明與輸出參數(shù)不一致時可能產(chǎn)生錯誤。 printf()函中格式符串中的數(shù)目多于列表參數(shù)個數(shù)時,則會輸出錯 誤數(shù)據(jù);如果格式符串中的數(shù)目少于列表參數(shù)個數(shù),則多出的參 數(shù)不被輸出。 例如:例如: #include “stdio.h” void main() int i=-6,x=5; f

17、loat y=123.456; printf(“%d,%dn”,i); printf(“%-4d,%f”,i,y,x); 輸出結(jié)果為:輸出結(jié)果為: -6,2509 /*多余格式符輸出錯誤數(shù)據(jù)*/ -6,123.456001 /* x未被輸出*/ 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) (2)“f”格式符一般為格式符一般為7位有效數(shù)字位有效數(shù)字,雙精度一般為雙精度一般為16位。位。 例如:例如: #include “stdio.h” void main() float x=111111.111,y=222222.222;

18、printf(%f,x+y); 輸出結(jié)果為:輸出結(jié)果為: 333333.328125 /*前7位是有效數(shù)字,后面數(shù)字無意義*/ 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) (2)“f”格式符一般為格式符一般為7位有效數(shù)字位有效數(shù)字,雙精度一般為雙精度一般為16位。位。 #include “stdio.h” void main() double x=111111.11111,y=222222.22222; printf(%lf,x+y); 輸出結(jié)果為:輸出結(jié)果為: 333333.333330 /*可達16位是有效數(shù)字,小數(shù)點保

19、留6位*/ 二、二、 格式化的輸入與輸出格式化的輸入與輸出 1. printf( )函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù)) 二、二、 格式輸入與輸出格式輸入與輸出 2 scanf( )函數(shù)(格式輸入函數(shù))函數(shù)(格式輸入函數(shù)) 一般形式:一般形式: scanf(格式控制格式控制,地址列表);,地址列表); 功能:功能:從鍵盤向程序中的變量輸入一個或若干個任意類型的 數(shù)據(jù)。 例如:例如: scanf(%d,%d, scanf(“%d%d%d”, printf(“a=%d,b=%d,c=%dn”,a,b,c); 輸入數(shù)據(jù)的格輸入數(shù)據(jù)的格 式表示什么意式表示什么意 思思? 二、二、 格式輸入與輸出格

20、式輸入與輸出 2 scanf( )函數(shù)(格式輸入函數(shù))函數(shù)(格式輸入函數(shù)) 運行時按以下方式輸入運行時按以下方式輸入a,b,c的值:的值: 345 (輸入a,b,c的值,用空格間隔) a=3,b=4,c=5 (輸出a,b,c的值) 注:輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以 用用Enter鍵、鍵、Tab鍵分隔,鍵分隔,不能用逗號作為兩個數(shù)據(jù)的分隔符。不能用逗號作為兩個數(shù)據(jù)的分隔符。 下面輸入均為合法:下面輸入均為合法: 345 3 4 5 3(按Tab鍵)4 5 如下面的輸入不合法如下面的輸入不合法: 3,4,5 二、二、 格式輸入與輸出格式輸入與輸出 2 scanf( )函數(shù)(格式輸入函數(shù))函數(shù)(格式輸入函數(shù)) 3. 使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論