《基本輸入輸出流》PPT課件.ppt_第1頁
《基本輸入輸出流》PPT課件.ppt_第2頁
《基本輸入輸出流》PPT課件.ppt_第3頁
《基本輸入輸出流》PPT課件.ppt_第4頁
《基本輸入輸出流》PPT課件.ppt_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、The Lecturer:姚雅鵑 E-mail:,C/C+語言程序設(shè)計,第二十七講 基本輸入/輸出流,輸入/輸出流類體系 輸入/輸出格式控制,P315,C+將輸入/輸出的數(shù)據(jù)處理為字節(jié)序列,并形象地稱之為“流”(stream)。,為了實現(xiàn)數(shù)據(jù)的輸入/輸出, C+定義了一系列類,稱為流類。,數(shù)據(jù)在程序和設(shè)備之間“流動”,一、輸入/輸出流類體系,I/O流類繼承關(guān)系,流基類,通用輸入流基類,通用輸出流基類,通用輸入輸出流基類,在這些已定義的類中, 給出了若干方法(成員函數(shù)), 用于控制輸入輸出。,cin和cout分別是istream類和ostream類的對象,由C+事先定義。,使用I/O流類,程序中

2、需包含頭文件。,一、輸入/輸出流類體系,cin是緩沖流:操作系統(tǒng)將用戶輸入的內(nèi)容先放入內(nèi)存緩沖區(qū),當(dāng)用戶輸入結(jié)束按回車(Enter)時,cin從緩沖區(qū)提取數(shù)據(jù)。,二、輸入/輸出格式控制,1. 缺省的輸入/輸出格式,1)缺省的輸入格式,輸入的數(shù)據(jù)類型必須與定義的變量類型一致。,二、輸入/輸出格式控制,1. 缺省的輸入/輸出格式,1)缺省的輸入格式,輸入數(shù)據(jù)時,數(shù)據(jù)之間的分隔符缺省為: (空格鍵) (制表鍵) (回車鍵) 這三個鍵通稱為空白字符。,整型數(shù):十進(jìn)制、域?qū)挒?、右對齊、空格填充。,二、輸入/輸出格式控制,1. 缺省的輸入/輸出格式,2)缺省的輸出格式,實型數(shù):精度6位、浮點輸出、域?qū)挒?/p>

3、0、右對齊、空格填充。 若整數(shù)部分超過7位或有效數(shù)字在小數(shù)點后第4位之后,自動轉(zhuǎn)換為科學(xué)計數(shù)法格式。,若數(shù)據(jù)的實際寬度超過域?qū)挘?則按實際長度輸出。,字符或字符串:域?qū)挒?、右對齊、空格填充。,e.g.27_1 標(biāo)準(zhǔn)輸出的缺省格式。,#include #include using namespace std; void main() double d1=12.3456789, d2=123456.789, d3=0.0000123456; coutd1 , d2 , d3endl; coutsetw(10)d1 , setw(10)d2 , setw(10)d3endl; char s10=a

4、bcd, c=k; couts , setw(4)cendl; ,輸出結(jié)果: 12.3457, 123457, 1.23456e-005 12.3457, 123457, 1.23456e-005 abcd, k (表示空格),二、輸入/輸出格式控制,2. 控制輸入/輸出格式,1)使用格式狀態(tài)標(biāo)志和成員函數(shù),P319,在 ios 類中,定義了一個公有的枚舉成員,用于控制輸入輸出格式。,enum / 部分內(nèi)容如下,含義見319頁表14-1 skipws=0 x0001, /跳過輸入中的空白字符 . dec=0 x0010, /將數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制 oct=0 x0020, /將數(shù)據(jù)轉(zhuǎn)換成八進(jìn)制 h

5、ex=0 x0040, /將數(shù)據(jù)轉(zhuǎn)換成十六進(jìn)制 showbase=0 x0080, /輸出時帶表示數(shù)制的前導(dǎo)符 ; /每個枚舉常量代表一種格式狀態(tài)標(biāo)志,二、輸入/輸出格式控制,2. 控制輸入/輸出格式,1)使用格式狀態(tài)標(biāo)志和成員函數(shù),在 ios 類中,還定義了一個保護(hù)的長整型成員,稱為輸入輸出狀態(tài)標(biāo)志字: protected: long x_flag;,C+使用x_flag的低16位,每一個二進(jìn)制位代表一種格式狀態(tài),值為1時表示開啟,值為0時表示關(guān)閉。 多個枚舉常量組合成x_flag,控制輸入輸出格式。,. XXXX XXXX XXXX XXXX,x_flag,如:ios:oct | ios:

6、showbase 組合出的x-flag為: . 0000 0000 1010 0000,即0 x00A0 表示按八進(jìn)制輸出數(shù)據(jù),并輸出前導(dǎo)符0,二、輸入/輸出格式控制,2. 控制輸入/輸出格式,1)使用格式狀態(tài)標(biāo)志和成員函數(shù),由于x_flag是ios的保護(hù)成員,對象 cin、cout不能直接訪問,所以ios類提供了一些公有成員函數(shù)來設(shè)置 x_flag。,setf(格式狀態(tài)標(biāo)志) 功能:開啟格式狀態(tài) unsetf(格式狀態(tài)標(biāo)志) 功能:取消格式狀態(tài),P320,#include using namespace std; void main() char c1, c2, c3; cin.unsetf

7、(ios:skipws); / 設(shè)置不跳過空白字符 cinc1c2c3; coutxy; coutx , yendl; / 缺省以十進(jìn)制輸出 ,e.g.27_2 分析以下程序。,假設(shè)先輸入:a b c 再輸入:10 20 輸出:?,二、輸入/輸出格式控制,2. 控制輸入/輸出格式,2)使用流操縱符,在頭文件中定義了一些流操縱符,用于控制I/O格式。,P322,常用的有dec、oct、hex、endl、 setbase()、setw()、setfill()、setprecision()、setiosflags(),#include #include using namespace std; vo

8、id main() int x, y, a, b; cinhexxy; cinoctab; coutsetbase(10)setw(8)setfill( * )x , setfill( $ )setw(4)yendl; coutsetiosflags(ios:left) a , setw(8)bendl; ,e.g.27_3 控制輸入輸出格式。,假設(shè)輸入: 10 20 10 20 輸出:?,#include #include using namespace std; void main() double x=12.34567; coutxendl; coutsetprecision(4)xen

9、dl; /設(shè)置以定點數(shù)格式輸出 cout.setf(ios:fixed, ios:floatfield); coutxendl; /設(shè)置以科學(xué)表示法格式輸出 cout.setf(ios:scientific, ios:floatfield); coutsetprecision(2)xendl; ,e.g.27_4 控制實型數(shù)的輸出精度。,運行結(jié)果: 12.3457 /默認(rèn)6位精度 12.35 /設(shè)置為4位精度 12.3457 /小數(shù)點后4位數(shù)字 1.23e+001 /小數(shù)點后2位數(shù)字,二、輸入/輸出格式控制,3. 成員函數(shù)get()和getline(),get()與getline()是類ist

10、ream定義的成員函數(shù),可讀取空白字符,因此可解決cin讀取字符串時遇空格結(jié)束的問題。,P317,二、輸入/輸出格式控制,3. 成員函數(shù)get()和getline(),get()的重載形式:,int get(); istream ,getline()的原型:,istream ,二、輸入/輸出格式控制,3. 成員函數(shù)get()和getline(),帶3個參數(shù)的get()和getline()的區(qū)別,get()遇n會結(jié)束,n留在輸入流中,即接下來的讀取從該n開始 getline()遇n會結(jié)束,n不留在輸入流中,也不被讀取,而是從輸入流中刪除,#include using namespace std; void main( ) char c1, c2, c3; char str180, str2100; cout“輸入三個字符:; c1=cin.get(); cin.get(c2).get(c3); cin.get(); cout“輸入第一行字符串:; cin.get(str1, 80); cin.get(); cout“輸入第二行字符串:; cin.getline(s

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論