《北大青島C語言學(xué)習(xí)》由會員分享,可在線閱讀,更多相關(guān)《北大青島C語言學(xué)習(xí)(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,第一級,第二級,*,C,語言中的輸入和輸出,第四章,回顧,賦值運算符,算術(shù)算運符,比較運算符,邏輯運算符,位運算符,轉(zhuǎn)換,運算符的優(yōu)先級,2,目標(biāo),理解帶格式的輸入/輸出函數(shù),-,scanf,(),和,printf,(),使用字符輸入/輸出函數(shù),-,getchar,(),和,putchar,(),3,標(biāo)準(zhǔn)輸入/輸出,C,語言中,的標(biāo)準(zhǔn)庫提供了輸入和輸出,函數(shù),標(biāo)準(zhǔn)庫,提供:,輸入/輸出函數(shù)來處理輸入、輸出、字符 和字符串操作,標(biāo)準(zhǔn)輸入通常是指鍵盤,標(biāo)準(zhǔn)輸出通常是指顯示器(也稱控制臺),可以用文件代替標(biāo)準(zhǔn),輸入和輸出,設(shè)備,4,頭文件,#,include,這是一個預(yù)處理
2、命令,stdio,.h,是一個文件,稱為頭文件,包括對應(yīng)于,C,語言程序中使用的輸入/輸出函數(shù)的宏,所設(shè)計的,printf,()、,scanf,()、,putchar,()、,getchar,(),等函數(shù)需要使用頭文件中的這些宏才能正確執(zhí)行,5,帶格式的輸入/輸出,printf,(),用于帶格式的輸出,scanf,(),用于帶格式的輸入,能以用戶控制下的各種預(yù)指定格式讀入和輸出數(shù)據(jù),格式說明符,指定了變量值輸入和輸出的格式,6,printf()-1,用于在標(biāo)準(zhǔn)輸出設(shè)備控制臺上顯示數(shù)據(jù),語法格式:,printf(,control string,argument list,);,控制字符串,參數(shù)列
3、表,都需要一個格式命令-與參數(shù)列表需要在數(shù)量、類型和順序上匹配,需要由,“”括起來。由文本字符和空格、格式命令和非打印字符組成,7,printf()-2,控制字符串由三類項目中的一項或多項組成:,文本字符:由可打印字符組成,格式命令:以%符號開始,隨后緊跟與數(shù)據(jù)項相應(yīng)的格式代碼,非打印字符:包括制表符、空格和新行,8,格式代碼-1,格式,printf(),scanf(),單字符,%,c,%,c,字符串,%,s,%,s,帶符號的十進(jìn)制整數(shù),%,d,%,d,浮點數(shù)(十進(jìn)制記數(shù)法),%,f,%,f,或%,e,浮點數(shù)(十進(jìn)制記數(shù)法),%,lf,%,lf,浮點數(shù)(指數(shù)計數(shù)法),%,e,%,f,或%,e,
4、浮點數(shù)(%,f,或%,e,中較短的一個),%,g,不帶符號的十進(jìn)制整數(shù),%,u,%,u,不帶符號的十六進(jìn)制整數(shù)(使用“,ABCDEF,”),%,x,%,x,不帶符號的八進(jìn)制整數(shù),%,o,%,o,上表中,,c、d、f、lf、e、g、u、s、o,和,x,都是類型說明符,9,格式代碼-2,格式代碼,輸出約定,%,d,整數(shù)的數(shù)字位數(shù),%,f,數(shù)字的整數(shù)部分如實輸出。小數(shù)部分保留 6 位。如果小數(shù)部分不是 6 位,末尾填零;否則,四舍五入取到 6 位,%,e,小數(shù)點左側(cè)保留一位數(shù)字,右側(cè)保留 6 位數(shù)字(與上面的%,f,相同),上表總結(jié)了各種代碼的輸出約定,10,控制字符串特殊字符,格式代碼,輸出約定,
5、輸出 字符,輸出 字符,%,輸出%字符,由于%和“在控制字符中有特殊用途,因此如果,需要輸出這些字符,按照上表的方式使用,11,控制字符串與格式代碼,編號,語句,控制字符串,控制字符串包括的內(nèi)容,參數(shù),列表,參數(shù)列表的說明,屏幕,顯示,1.,printf(%d,300);,%,d,僅由格式命令組成,300,常量,300,2.,printf(%d,10+5);,%,d,僅由格式命令組成,10+5,表達(dá)式,15,3.,printf(Good Morning,Mr.Lee.,);,早上好 李先生.,僅由文本字符組成,無,無,Good Morning Mr.Lee.,4.,int count=100;
6、,printf(%d,count);,%,d,僅由格式命令組成,count,變量,100,12,printf(),示例,顯示整數(shù)、浮點數(shù)和字符串的程序,#,include,void main(),int a=10;,float b=24.67892345;,char ch=A;,printf(,Integer data=%d,n,a);,printf(Float Data=%fn,b);,printf(Character=%cn,ch);,printf(This prints the stringn);,printf(%s,This also prints a stringn);,13,pri
7、ntf(),中的修飾符-1,“-”,修飾符,數(shù)據(jù)項在范圍內(nèi)向左對齊,從范圍最左側(cè)的位置開始輸出數(shù)據(jù)項,字符寬度修飾符,可以用于浮點型、雙精度型和字符數(shù)組型(字符串)。,范圍寬度修飾符是一個整數(shù),定義了數(shù)據(jù)項的 最大范圍寬度。,14,printf(),中的修飾符-2,精度修飾符,可以用在浮點型、雙精度型或字符數(shù)組型(字符串)中。如果用在浮點型或雙精度型數(shù)據(jù)中,數(shù)字字符串表示小數(shù)右側(cè)最多可輸出的數(shù)字位數(shù),“0”,修飾符,字段的默認(rèn)填充符是空格。如果用戶希望用零作為填充符,需要使用此修飾符,“,l”,修飾符,可以借助于此修飾符將整數(shù)顯示為長整型或雙精度型參數(shù)。相應(yīng)的格式代碼為,%,ld,15,pri
8、ntf(),中的修飾符-3,“,h”,修飾符,此修飾符用于顯示短整數(shù)。,相應(yīng)的格式代碼為,%,hd,“*”,修飾符,如果用戶不希望預(yù)先指定字段寬度,,而希望程序來指定,則需要用到此修飾符,16,修飾符示例,#,include,void main(),printf(The number 555 in various forms:n);,printf(Without any modifier:n);,printf(%dn,555);,printf(With modifier:n);,printf(%-dn”,555);,printf(With digit string 10 as modifier
9、:n);,printf(%10dn”,555);,printf(With 0 as modifier:n);,printf(%0dn”,555);,printf(With 0 and digit string 10 as modifiers:n);,printf(%010dn”,555);,printf(With-,0 and digit string 10 as modifiers:n);,printf(%-010dn,555);,printf(),中的修飾符的使用的示例,17,scanf(),用于接受數(shù)據(jù),的通用格式,scanf(,control string,argument list,
10、);,控制字符串,參數(shù)列表,printf(),語句中的使用的格式極其語法同,樣適用與,scanf(),語句,18,printf(),和,scanf(),參數(shù)列表之間的區(qū)別,printf,(),使用變量名、常量、符號常量和表達(dá)式,scanf,(),使用變量指針,使用,scanf,(),時,對于參數(shù)列表應(yīng)遵循以下規(guī)則:,如果希望讀取基本數(shù)據(jù)類型變量的值,應(yīng)在變量名的前面加上符號&,當(dāng)讀取指針變量指向的值時,在變量名前不能使用,&,19,printf(),和,scanf(),格式命令之間的區(qū)別,沒有,%,g,選項,格式代碼,%,f,和,%,e,在效果上是一樣的,20,scanf(),示例,#,inc
11、lude,void main(),int a;,float d;,char ch,name40;,printf(Please enter the datan,);,scanf(%d%f%c%s,printf(,nThe values accepted are,:,%d,%f,%c,%s,a,d,ch,name);,scanf,(),使用非打印字符來判斷輸入數(shù)據(jù)是什么時候開始和結(jié)束的,可以忽略空白區(qū)域和行邊界來獲取數(shù)據(jù),21,緩沖輸入/輸出,用于讀取和寫入,ASCII,字符,是一塊臨時的存儲區(qū)域,或在內(nèi)存中,或在設(shè)備的控制卡上,緩沖輸入/輸出,控制臺輸入/輸出,緩沖文件輸入/輸出,22,控制臺輸
12、入/輸出,控制臺輸入/輸出函數(shù)將其操作指向系統(tǒng)的標(biāo)準(zhǔn)輸入和輸出,C,中最簡單的控制臺輸入/輸出是:,getchar,(),從鍵盤讀取一個(且僅一個)字符,putchar,(),在屏幕上輸出一個字符,23,getchar(),用于從鍵盤讀取輸入數(shù)據(jù),方式為一次讀一個字符,緩沖字符,直到用戶按回車鍵,getchar,(),函數(shù)沒有參數(shù),但仍然必須使用括號,24,getchar(),示例,#include,void main(),char letter;,printf(,nPlease enter any character:,);,letter=getchar();,printf(nThe cha
13、racter entered by you is%c,letter);,getchar(),的使用示例,25,putchar(),C,中的字符輸出函數(shù),需要參數(shù),單字符常量,轉(zhuǎn)義序列,字符變量,putchar(),函數(shù)的參數(shù),26,putchar(),的選項和效果,參數(shù),函數(shù),效果,字符變量,putchar(c),顯示字符變量,c,的內(nèi)容,字符常量,putchar(A),顯示字母,A,數(shù)值常量,putchar(5),顯示數(shù)字 5,轉(zhuǎn)義序列,putchar(t),在光標(biāo)位置插入制表符,轉(zhuǎn)義序列,putchar(n),在光標(biāo)位置插入回車,27,#include,void main(),putcha
14、r(H);putchar(n);,putchar(t);,putchar(E);putchar(n);,putchar(t);putchar(t);,putchar(L);putchar(n);,putchar(t);putchar(t);putchar(t);,putchar(L);putchar(n);,putchar(t);putchar(t);putchar(t);,putchar(t);,putchar(O);,putchar(),28,總結(jié),本課主要講解了以下內(nèi)容:,帶格式的輸入、輸出函數(shù),scanf(),函數(shù),printf(),函數(shù),字符的輸入和輸出,getchar(),函數(shù),putchar(),函數(shù),29,