c++程序語言設計第三章_2_.ppt_第1頁
c++程序語言設計第三章_2_.ppt_第2頁
c++程序語言設計第三章_2_.ppt_第3頁
c++程序語言設計第三章_2_.ppt_第4頁
c++程序語言設計第三章_2_.ppt_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章數據的輸入輸出,為了讓計算機處理各種數據,首先就應該把源數據輸入到計算機中;計算機處理結束后,再將目標數據信息以人能夠識別的方式輸出。C語言中的輸入輸出操作,是由C語言編譯系統(tǒng)提供的庫函數來實現。3.1格式化輸出printf()函數3.2格式化輸入scanf()函數3.3單個字符輸入輸出getchar()和putchar()函數3.4順序結構程序設計良好的源程序書寫風格順序程序段左對齊,3.1格式化輸出printf()函數,printf()函數的作用:向計算機系統(tǒng)默認的輸出設備(一般指終端或顯示器)輸出一個或多個任意類型的數據。3.1.1printf()函數的一般格式,printf(格式字符串,輸出項表);1格式字符串。“格式字符串”也稱“轉換控制字符串”,可以包含三種字符:(1)格式指示符。格式指示符的一般形式如下:%類型,(2)轉義字符表3.1(3)普通字符除格式指示符和轉義字符之外的其它字符。格式字符串中的普通字符,原樣輸出。2輸出項表輸出項表是可選的。如果要輸出的數據不止1個,相鄰2個之間用逗號分開。下面的printf()函數都是合法的:(1)printf(Iamastudent.n);(2)printf(%d,3+2);(3)printf(a=%fb=%5dn,a,a+3);必須強調:“格式字符串”中的格式指示符,必須與“輸出項表”中、輸出項的數據類型一致,否則會引起輸出錯誤。,案例3.1已知圓半徑radius=1.5,求圓周長和圓面積。main()floatradius,length,area,pi=3.1415926;radius=1.5;length=2*pi*radius;/*求圓周長*/area=pi*radius*radius;/*求圓面積*/printf(“radius=%fn”,radius);/*輸出圓半徑*/printf(“l(fā)ength=%7.2f,area=%7.2fn”,length,area);/*輸出圓周長、面積*/,3.1.2格式指示符輸出不同類型的數據,要使用不同的類型轉換字符。1類型轉換字符d以帶符號的十進制整數形式輸出。main()intnum1=123;longnum2=123456;/*用3種不同格式,輸出int型數據num1的值*/printf(num1=%d,num1=%5d,num1=%-5d,num1=%2dn,num1,num1,num1,num1);/*用3種不同格式,輸出long型數據num2的值*/printf(num2=%ld,num2=%8ld,num2=%5ldn,num2,num2,num2);printf(num1=%ldn,num1);,程序運行結果如下:num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456num1=16908411對于整數,還可用八進制、無符號形式(%o(小寫字母o))和十六進制、無符號形式(%x)輸出。對于unsigned型數據,也可用%u格式符,以十進制、無符號形式輸出。所謂無符號形式是指,不論正數還是負數,系統(tǒng)一律當作無符號整數來輸出。例如,printf(%d,%o,%xn,-1,-1,-1);,2類型轉換字符f以小數形式、按系統(tǒng)默認的寬度,輸出單精度和雙精度實數。案例3.3類型轉換字符f的使用。/*案例代碼文件名:AL3_3.C。*/main()floatf=123.456;doubled1,d2;d1=1111111111111.111111111;d2=2222222222222.222222222;printf(%f,%12f,%12.2f,%-12.2f,%.2fn,f,f,f,f,f);printf(d1+d2=%fn,d1+d2);程序運行結果如下:123.456001,123.456001,123.46,123.46,123.46d1+d2=3333333333333.333010,本案例程序的輸出結果中,數據123.456001和3333333333333.333010中的001和010都是無意義的,因為它們超出了有效數字的范圍。對于實數,也可使用格式符%e,以標準指數形式輸出:尾數中的整數部分大于等于1、小于10,小數點占一位,尾數中的小數部分占5位;指數部分占4位(如e-03),其中e占一位,指數符號占一位,指數占2位,共計11位。也可使用格式符%g,讓系統(tǒng)根據數值的大小,自動選擇%f或%e格式、且不輸出無意義的零。,3類型轉換字符c輸出一個字符(只占一列寬度)。案例3.4類型轉換字符c的使用。/*案例代碼文件名:AL3_4.C。*/main()charc=A;inti=65;printf(c=%c,%5c,%dn,c,c,c);printf(i=%d,%c,i,i);程序運行結果如下:c=A,A,65i=65,A需要強調的是:在C語言中,整數可以用字符形式輸出,字符數據也可以用整數形式輸出。將整數用字符形式輸出時,系統(tǒng)首先求該數與256的余數,然后將余數作為ASCII碼,轉換成相應的字符輸出。,4類型轉換字符s輸出一個字符串。案例3.5類型轉換字符s的使用。main()printf(%s,%5s,%-10s,Internet,Internet,Internet);printf(%10.5s,%-10.5s,%4.5sn,Internet,Internet,Internet);程序運行結果如下:Internet,Internet,Internet,Inter,Inter,Inter注意:系統(tǒng)輸出字符和字符串時,不輸出單引號和雙引號。,3.1.3使用說明(1)printf()可以輸出常量、變量和表達式的值。但格式控制中的格式說明符,必須按從左到右的順序,與輸出項表中的每個數據一一對應,否則出錯。例如,printf(str=%s,f=%d,i=%fn,Internet,1.0/2.0,3+5,CHINA);是錯誤的。(2)格式字符x、e、g可以用小寫字母,也可以用大寫字母。使用大寫字母時,輸出數據中包含的字母也大寫。除了x、e、g格式字符外,其它格式字符必須用小寫字母。例如,%f不能寫成%F。(3)格式字符緊跟在“%”后面就作為格式字符,否則將作為普通字符使用(原樣輸出)。例如,“printf(”c=%c,f=%fn“,c,f);”中的第一個c和f,都是普通字符。,3.2格式化輸入scanf()函數,scanf()函數是用來從外部輸入設備向計算機主機輸入數據的。3.2.1scanf()函數的一般格式,main()floatradius,high,vol,pi=3.1415926;printf(Pleaseinputradius,在程序中給計算機提供數據,可以用賦值語句,也可以用輸入函數。在C語言中,可使用scanf()函數,通過鍵盤輸入,給計算機同時提供多個、任意的數據。1.scanf()函數的一般格式scanf(格式字符串,輸入項首地址表);(1)格式字符串。格式字符串可以包含3種類型的字符:格式指示符、空白字符(空格、Tab鍵和回車鍵)和非空白字符(又稱普通字符)。格式指示符與printf()函數的相似,空白字符作為相鄰2個輸入數據的缺省分隔符,非空白字符在輸入有效數據時,必須原樣一起輸入。,(2)輸入項首地址表由若干個輸入項首地址組成,相鄰2個輸入項首地址之間,用逗號分開。輸入項首地址表中的地址,可以是變量的首地址,也可以是字符數組名或指針變量。變量首地址的表示方法:putchar(ch1);putchar(ch2);putchar(ch3);/*輸出*/putchar(n);putchar(ch1);putchar(n);/*輸出ch1的值,并換行*/putchar(E);putchar(n);/*輸出字符E,并換行*/putchar(ch3);putchar(n);,1putchar()函數的格式:putchar(ch);其中ch可以是一個字符變量或常量,也可以是一個轉義字符。2putchar()函數的作用:向終端輸出一個字符。(1)putchar()函數只能用于單個字符的輸出,且一次只能輸出一個字符。另外,從功能角度來看,printf()函數可以完全代替putchar()函數。(2)在程序中使用putchar()函數,務必牢記:在程序(或文件)的開頭加上編譯預處理命令(也稱包含命令),即:#includestdio.h表示要使用的函數,包含在標準輸入輸出(stdio)頭文件(.h)中。,3.3.2單個字符的輸入getchar()函數案例3.9說明getchar()函數的格式和作用。#includestdio.h/*文件包含*/main()charch;printf(Pleaseinputtwocharacter:);ch=getchar();/*輸入1個字符并賦給ch*/putchar(ch);putchar(n);putchar(getchar();/*輸入一個字符并輸出*/putchar(n);,程序運行情況如下:Pleaseinputtwocharacters:abab,1getchar()函數的格式:getchar();2getchar()函數的作用:從系統(tǒng)隱含的輸入設備(如鍵盤)輸入一個字符。另外,從功能角度來看,scanf()函數可以完全代替getchar()函數。(1)getchar()函數只能用于單個字符的輸入,一次輸入一個字符。(2)程序中要使用getchar()函數,必須在程序(或文件)的開頭加上編譯預處理命令:#includestdio.h“,3.4順序結構程序設計,在順序結構程序中,各語句(或命令)是按照位置的先后次序,順序執(zhí)行的,且每個語句都會被執(zhí)行到。案例3.10輸入任意三個整數,求它們的和及平均值。,main()intnum1,num2,num3,sum;floataver;printf(Pleaseinputthreenumbers:);scanf(%d,%d,%d,案例3.11求方程ax2+bx+c=0的實數根。a,b,c由鍵盤輸入,a0且b2-4ac0。,#includemath.h“/*為使用求平方根函數sqrt(),包含math.h頭文件*/main()floata,b,c,disc,x1,x2;printf(Inputa,b,c:);scanf(%f,%f,%f,案例3.12從鍵盤輸入一個小寫字母,要求用大小寫字母形式輸出該字母及對應的ASCII碼值。,#includestdio.hmain()charc1,c2;printf(Inputalowercaseletter:);c1=getchar();putchar(c1);printf(,%dn,c1);c2=c1-32;/*將大寫字母轉換成對應的小寫字母*/printf(%c,%dn,c2,c2);,程序運行情況如下:Inputalowercaseletter:aa,

溫馨提示

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

評論

0/150

提交評論