




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章1第第7章章 I/O流流面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章2本章主要內(nèi)容本章主要內(nèi)容n流的概念流的概念 n非格式化輸入非格式化輸入/輸出輸出 n格式化輸入格式化輸入/輸出輸出n文件的輸入文件的輸入/輸出輸出面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章3在在C+中,將數(shù)據(jù)從一個(gè)對(duì)象到另一個(gè)對(duì)象中,將數(shù)據(jù)從一個(gè)對(duì)象到另一個(gè)對(duì)象的流動(dòng)抽象為的流動(dòng)抽象為“流流”。流動(dòng)的方向不同,。流動(dòng)的方向不同,構(gòu)成輸入構(gòu)成輸入/輸出流,即輸出流,即I/O流。流。在在C+程序中,數(shù)據(jù)可以從鍵盤流入到程序,程序中,數(shù)據(jù)可以從鍵盤流入到程序,也可以從程序流向屏幕或磁盤文件。也可以從程序流向屏幕或磁盤文件。從流中獲取數(shù)據(jù)的操作稱
2、為從流中獲取數(shù)據(jù)的操作稱為提取操作。提取操作。向流中添加數(shù)據(jù)的操作稱為向流中添加數(shù)據(jù)的操作稱為插入操作插入操作。數(shù)據(jù)的輸入數(shù)據(jù)的輸入/輸出就是通過(guò)輸出就是通過(guò)I/O流來(lái)實(shí)現(xiàn)的。流來(lái)實(shí)現(xiàn)的。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章4C+編譯系統(tǒng)提供的編譯系統(tǒng)提供的I/O流庫(kù)含有兩個(gè)平行流庫(kù)含有兩個(gè)平行基類:基類:streambuf和和ios,所有的流類都是由,所有的流類都是由它們派生出來(lái)的。它們派生出來(lái)的。ios類有類有4個(gè)直接派生類,即輸入流類個(gè)直接派生類,即輸入流類istream、輸出流類輸出流類ostream、文件流類、文件流類fstreambase、串流類串流類strstreambase,這,這4種流作
3、為流庫(kù)中種流作為流庫(kù)中的基本流類。的基本流類。 面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章5標(biāo)準(zhǔn)標(biāo)準(zhǔn)I/O流預(yù)定義了流預(yù)定義了4個(gè)流類對(duì)象:個(gè)流類對(duì)象:cin,cout,cerr,clog。cin:istream流類的一個(gè)對(duì)象,處理標(biāo)準(zhǔn)輸入流類的一個(gè)對(duì)象,處理標(biāo)準(zhǔn)輸入cout,cerr,clog:ostream流類的對(duì)象。流類的對(duì)象。cout處理標(biāo)準(zhǔn)輸處理標(biāo)準(zhǔn)輸出,出,cerr和和clog處理標(biāo)準(zhǔn)出錯(cuò)信息。處理標(biāo)準(zhǔn)出錯(cuò)信息。不同在于不同在于:cerr的輸出不帶緩沖,因而發(fā)送給它的任何內(nèi)容都的輸出不帶緩沖,因而發(fā)送給它的任何內(nèi)容都立即輸出;立即輸出; clog的輸出帶緩沖的輸出帶緩沖,只有當(dāng)緩沖區(qū)滿時(shí)才輸出,也可
4、只有當(dāng)緩沖區(qū)滿時(shí)才輸出,也可以通過(guò)刷新流的方式強(qiáng)迫刷新緩沖區(qū)。以通過(guò)刷新流的方式強(qiáng)迫刷新緩沖區(qū)。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章6面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章77.2非格式化輸入非格式化輸入/輸出輸出 非格式化輸入非格式化輸入/輸出就是按系統(tǒng)預(yù)定義的格式進(jìn)行的輸出就是按系統(tǒng)預(yù)定義的格式進(jìn)行的輸入輸入/輸出。輸出。按默認(rèn)約定,每個(gè)按默認(rèn)約定,每個(gè)C+程序都能使用標(biāo)準(zhǔn)程序都能使用標(biāo)準(zhǔn)I/O流,如流,如標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出。標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出。qcin用來(lái)處理標(biāo)準(zhǔn)輸入,即鍵盤輸入;用來(lái)處理標(biāo)準(zhǔn)輸入,即鍵盤輸入;qcout用來(lái)處理標(biāo)準(zhǔn)輸出,即屏幕輸出。它們被定用來(lái)處理標(biāo)準(zhǔn)輸出,即屏幕輸出。它們被定義在義在iostr
5、eam.h頭文件中。頭文件中。q在使用在使用cout和和cin前,要用編譯預(yù)處理命令將所前,要用編譯預(yù)處理命令將所使用的頭文件包含到源程序中,其格式如下:使用的頭文件包含到源程序中,其格式如下: #include #include 面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章8非格式化輸出非格式化輸出 “”是預(yù)定義的插入運(yùn)算符,作用在流類對(duì)象是預(yù)定義的插入運(yùn)算符,作用在流類對(duì)象cout上,上,實(shí)現(xiàn)默認(rèn)格式的屏幕輸出。使用實(shí)現(xiàn)默認(rèn)格式的屏幕輸出。使用cout輸出表達(dá)式值到輸出表達(dá)式值到屏幕上的格式如下:屏幕上的格式如下:coutE1E2”是預(yù)定義的提取運(yùn)算符,作用在流類對(duì)象是預(yù)定義的提取運(yùn)算符,作用在流類對(duì)象cin
6、上,實(shí)現(xiàn)默上,實(shí)現(xiàn)默認(rèn)格式的鍵盤輸入。使用認(rèn)格式的鍵盤輸入。使用cin將數(shù)據(jù)輸入到變量的格式如下:將數(shù)據(jù)輸入到變量的格式如下:cinV1V2Vn; 其中,其中,V1、V2、Vn都是變量都是變量。功能是暫停執(zhí)行程序,等。功能是暫停執(zhí)行程序,等待用戶從鍵盤輸入數(shù)據(jù),各數(shù)據(jù)間用待用戶從鍵盤輸入數(shù)據(jù),各數(shù)據(jù)間用空格或空格或Tab鍵分隔鍵分隔,輸入,輸入數(shù)據(jù)類型要與接受變量類型數(shù)據(jù)類型要與接受變量類型一致一致,輸完后,按回車鍵結(jié)束。,輸完后,按回車鍵結(jié)束。 cin是是istream流類的對(duì)象,它在流類的對(duì)象,它在iostream.h頭文件中作為全局頭文件中作為全局對(duì)象定義:對(duì)象定義:istream ci
7、n(stdin); 其中,其中,stdin表示標(biāo)準(zhǔn)輸入設(shè)備名(鍵盤)。表示標(biāo)準(zhǔn)輸入設(shè)備名(鍵盤)。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章107.3 格式化輸入格式化輸入/輸出輸出 nC+提供了兩種進(jìn)行輸入提供了兩種進(jìn)行輸入/輸出格式化的方輸出格式化的方法:法:q一種是用一種是用ios類類成員函數(shù)成員函數(shù)進(jìn)行格式化。進(jìn)行格式化。q另一種是用專門的另一種是用專門的操作符函數(shù)操作符函數(shù)進(jìn)行格式化。進(jìn)行格式化。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章11 7.3.1用用ios類成員函數(shù)格式化類成員函數(shù)格式化 ios類成員函數(shù)主要是通過(guò)對(duì)類成員函數(shù)主要是通過(guò)對(duì)狀態(tài)標(biāo)志、輸狀態(tài)標(biāo)志、輸出寬度、填充字符以及輸出精度出寬度、填充字符以及輸
8、出精度的操作來(lái)的操作來(lái)完成輸入完成輸入/輸出格式化。輸出格式化。枚舉量定義在枚舉量定義在ios類中,因此引用時(shí)必須包類中,因此引用時(shí)必須包含含ios:前綴前綴。使用時(shí)應(yīng)該全部用符號(hào)名,。使用時(shí)應(yīng)該全部用符號(hào)名,絕不要用數(shù)值。絕不要用數(shù)值。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章121.用用ios成員函數(shù)對(duì)狀態(tài)標(biāo)志進(jìn)行操作成員函數(shù)對(duì)狀態(tài)標(biāo)志進(jìn)行操作 ios類有類有3個(gè)成員函數(shù)可以對(duì)狀態(tài)標(biāo)志進(jìn)行操作,并且定義了一個(gè)個(gè)成員函數(shù)可以對(duì)狀態(tài)標(biāo)志進(jìn)行操作,并且定義了一個(gè)long型數(shù)據(jù)成員記錄當(dāng)前狀態(tài)標(biāo)志。這些狀態(tài)標(biāo)志可用位或運(yùn)算型數(shù)據(jù)成員記錄當(dāng)前狀態(tài)標(biāo)志。這些狀態(tài)標(biāo)志可用位或運(yùn)算符符“|”進(jìn)行組合。進(jìn)行組合。 設(shè)置狀態(tài)標(biāo)
9、志設(shè)置狀態(tài)標(biāo)志 用用 setf函數(shù)設(shè)置狀態(tài)標(biāo)志,函數(shù)設(shè)置狀態(tài)標(biāo)志, 其一般格式如下:其一般格式如下: long ios:setf(long flags) 清除狀態(tài)標(biāo)志清除狀態(tài)標(biāo)志 用用unsetf函數(shù)清除狀態(tài)標(biāo)志,其一般格式如下:函數(shù)清除狀態(tài)標(biāo)志,其一般格式如下: long ios:unsetf(long flags) 取狀態(tài)標(biāo)志取狀態(tài)標(biāo)志 用函數(shù)用函數(shù)flags取狀態(tài)標(biāo)志有兩種形式,其格式分別如下:取狀態(tài)標(biāo)志有兩種形式,其格式分別如下: long ios: flags() long ios:flags(long flag)面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章13調(diào)用的一般格式:調(diào)用的一般格式:.(ios
10、:)例例7-1 示例設(shè)置狀態(tài)標(biāo)志。示例設(shè)置狀態(tài)標(biāo)志。/example71.cpp#include void main() cout.setf(ios:showpos); /設(shè)置在正數(shù)前加上正號(hào)設(shè)置在正數(shù)前加上正號(hào)“+” cout.setf(ios:scientific); /設(shè)置按科學(xué)記數(shù)法輸出設(shè)置按科學(xué)記數(shù)法輸出 cout123 123.23endl;運(yùn)行結(jié)果:運(yùn)行結(jié)果:+123 +1.232300e+002面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章14例例7-2示例對(duì)狀態(tài)標(biāo)志的操作。示例對(duì)狀態(tài)標(biāo)志的操作。/example72.cpp#include void showflags(long f);void m
11、ain() long f; f=cout.flags(); /取當(dāng)前狀態(tài)標(biāo)志取當(dāng)前狀態(tài)標(biāo)志 showflags(f); /顯示狀態(tài)值顯示狀態(tài)值 cout.setf(ios:showpos|ios:scientific|ios:fixed); /追加狀態(tài)標(biāo)志追加狀態(tài)標(biāo)志 f=cout.flags(); /取當(dāng)前狀態(tài)標(biāo)志取當(dāng)前狀態(tài)標(biāo)志 showflags(f); /顯示狀態(tài)值顯示狀態(tài)值 面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章15 cout.unsetf(ios:scientific); /從狀態(tài)標(biāo)志中去掉從狀態(tài)標(biāo)志中去掉 scientific f=cout.flags(); /取當(dāng)前狀態(tài)標(biāo)志取當(dāng)前狀態(tài)標(biāo)志 sh
12、owflags(f); /顯示狀態(tài)值顯示狀態(tài)值 f=cout.flags(ios:hex); /重新設(shè)置狀態(tài)標(biāo)志重新設(shè)置狀態(tài)標(biāo)志 showflags(f); f=cout.flags(); /取當(dāng)前狀態(tài)標(biāo)志取當(dāng)前狀態(tài)標(biāo)志 showflags(f); void showflags(long f) long i; for(i=0 x8000;i;i=i1) /用用右移方式右移方式使使i中的值為中的值為“1”的位不斷右移的位不斷右移 if(i&f)cout1; /判斷判斷f中的某一位是否為中的某一位是否為“1” else cout0; coutendl;運(yùn)行結(jié)果:運(yùn)行結(jié)果:000000000
13、00000000001110000000000000101000000000000010100000000000000000001000000面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章162.用用ios成員函數(shù)設(shè)置輸出寬度成員函數(shù)設(shè)置輸出寬度 設(shè)置輸出寬度函數(shù)有兩種形式,其格式分別設(shè)置輸出寬度函數(shù)有兩種形式,其格式分別如下:如下: int ios:width(int len) int ios:width() 第一種形式是設(shè)置輸出寬度,并返回原來(lái)的第一種形式是設(shè)置輸出寬度,并返回原來(lái)的輸出寬度;第二種形式是返回當(dāng)前輸出寬度,輸出寬度;第二種形式是返回當(dāng)前輸出寬度,輸出寬度為輸出寬度為0。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章1
14、7#include void main() double values = 1.23,35.36,653.7,4358.24; for(int i=0;i4;i+) cout.width(10); cout valuesi n; 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 1.23 35.36 653.7 4358.24面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章183.設(shè)置填充字符設(shè)置填充字符 填充字符的作用是當(dāng)輸出值不滿輸出寬度時(shí)用填充字填充字符的作用是當(dāng)輸出值不滿輸出寬度時(shí)用填充字符來(lái)填充,默認(rèn)填充字符為符來(lái)填充,默認(rèn)填充字符為空格空格。它與。它與width()函數(shù)函數(shù)配合使用,否則沒(méi)有意義。配合使用,否則沒(méi)有意義。 設(shè)置填充字
15、符函數(shù)有兩種形式,其格式分別如下:設(shè)置填充字符函數(shù)有兩種形式,其格式分別如下: char ios:fill(char ch) char ios:fill() 第一種形式是重新設(shè)置填充字符,并返回設(shè)置前的填第一種形式是重新設(shè)置填充字符,并返回設(shè)置前的填充字符;第二種形式是返回當(dāng)前的填充字符充字符;第二種形式是返回當(dāng)前的填充字符。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章19#include void main() double values = 1.23,35.36,653.7,4358.24; for(int i=0;i4;i+) cout.width(10); cout.fill(*); cout value
16、si n; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:*1.23*35.36*653.7*4358.24面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章204.設(shè)置輸出精度設(shè)置輸出精度 設(shè)置浮點(diǎn)數(shù)輸出精度有兩種形式,其格式分別設(shè)置浮點(diǎn)數(shù)輸出精度有兩種形式,其格式分別如下:如下: int ios:precision(int p) int ios:precision() 第一種形式是重新設(shè)置輸出精度,并返回設(shè)置第一種形式是重新設(shè)置輸出精度,并返回設(shè)置前的輸出精度;第二種形式是返回當(dāng)前的輸出前的輸出精度;第二種形式是返回當(dāng)前的輸出精度。精度。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章21例例7-3 示例設(shè)置輸出寬度、填充字符、輸出精度。示例設(shè)置輸出寬度、填充字符
17、、輸出精度。/example73.cpp#include void main() int i;i=cout.width();coutwidth:iendl;cout.width(8);coutcout.width()(new width)endl;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章22 char c; c=cout.fill(); coutfilling word is:c( ASCII code(int)c)endl; cout.fill(*); coutcout.fill()(int)cout.fill()(new filling word)endl; int j; j=cout.precision
18、(); coutpresicion:jendl; cout.precision(8); cout123.456789(example)endl; coutcout.precision()(new presicion)”或插入運(yùn)算符或插入運(yùn)算符“”后后面來(lái)設(shè)定輸入面來(lái)設(shè)定輸入/輸出格式輸出格式,即在讀寫對(duì)象之間插入一,即在讀寫對(duì)象之間插入一個(gè)修改狀態(tài)的操作。個(gè)修改狀態(tài)的操作。 其中有些函數(shù)沒(méi)有參數(shù),所以又叫其中有些函數(shù)沒(méi)有參數(shù),所以又叫操作符操作符。 面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章26 設(shè)置輸入設(shè)置輸入/輸出寬度函數(shù)輸出寬度函數(shù)setw(int) 設(shè)置輸出填充字符函數(shù)設(shè)置輸出填充字符函數(shù)setfill
19、(int) 設(shè)置輸出精度函數(shù)設(shè)置輸出精度函數(shù)setprecision(int) 設(shè)置輸入設(shè)置輸入/輸出整型數(shù)數(shù)制函數(shù)輸出整型數(shù)數(shù)制函數(shù)dec、hex和和oct 取消輸入結(jié)束符函數(shù)取消輸入結(jié)束符函數(shù)ws 控制換行操作符控制換行操作符endl 代表輸出單字符代表輸出單字符“0”的操作符的操作符ends面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章271.設(shè)置輸入設(shè)置輸入/輸出寬度函數(shù)輸出寬度函數(shù)setw(int) 相當(dāng)于相當(dāng)于C語(yǔ)言的標(biāo)準(zhǔn)語(yǔ)言的標(biāo)準(zhǔn)I/O函數(shù)(函數(shù)(scanf和和printf)中的)中的“%”和格式符的作用。在使用時(shí),只對(duì)其后一項(xiàng)輸入和格式符的作用。在使用時(shí),只對(duì)其后一項(xiàng)輸入/輸出有效。輸出有效。 對(duì)于
20、對(duì)于輸出輸出時(shí),若實(shí)際寬度小于設(shè)置寬度時(shí),數(shù)據(jù)時(shí),若實(shí)際寬度小于設(shè)置寬度時(shí),數(shù)據(jù)向向右對(duì)齊右對(duì)齊,反之則按數(shù)據(jù)的實(shí)際寬度輸出。,反之則按數(shù)據(jù)的實(shí)際寬度輸出。 對(duì)于對(duì)于輸入輸入時(shí),若輸入的數(shù)據(jù)寬度超過(guò)設(shè)置寬度時(shí),時(shí),若輸入的數(shù)據(jù)寬度超過(guò)設(shè)置寬度時(shí),超出的數(shù)據(jù)部分超出的數(shù)據(jù)部分被截?cái)喽蛔鳛橄乱豁?xiàng)輸入內(nèi)容被截?cái)喽蛔鳛橄乱豁?xiàng)輸入內(nèi)容。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章28例例7-4-1 示例設(shè)置輸入示例設(shè)置輸入/輸出寬度。輸出寬度。/example74.cpp#include #include void main() char *p=12345,*q=678; char f4,g4; /最后一位為最后一位為
21、0 int i=10; coutpsetw(6)qsetw(4)pqsetw(4)fg; /設(shè)置輸入寬度設(shè)置輸入寬度 coutfendlgendli:iendl; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:12345 678123456781234512345i:10面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章292 設(shè)置輸出填充字符函數(shù)設(shè)置輸出填充字符函數(shù)setfill(int) 此函數(shù)與此函數(shù)與ios:fill相同,常與相同,常與setw(int)聯(lián)合使用,從聯(lián)合使用,從而向不滿設(shè)置輸出寬度的空間填入指定的字符,不而向不滿設(shè)置輸出寬度的空間填入指定的字符,不設(shè)置則填空格。設(shè)置后直至下一次設(shè)置前一直有效。設(shè)置則填空格。設(shè)置后直至下一
22、次設(shè)置前一直有效。面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章30例例7-4-2 示例設(shè)置輸入示例設(shè)置輸入/輸出寬度。輸出寬度。/example74.cpp#include #include void main() char *p=12345,*q=678; char f4,g4; /最后一位為最后一位為0 int i=10;/設(shè)置輸出寬度和填充字符設(shè)置輸出寬度和填充字符coutpsetfill(*)setw(6)qsetw(4)pqsetw(4)fg; /設(shè)置輸入寬度設(shè)置輸入寬度 coutfendlgendli:iendl; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:12345*678123456781234512345i:10面向
23、對(duì)象程序設(shè)計(jì)-第7章313設(shè)置輸出精度函數(shù)設(shè)置輸出精度函數(shù)setprecision(int)setiosflag(ios:fixed)使用定點(diǎn)方式表示實(shí)數(shù)。使用定點(diǎn)方式表示實(shí)數(shù)。setiosflag(ios:scientific)是用科學(xué)計(jì)數(shù)法表示實(shí)數(shù)。是用科學(xué)計(jì)數(shù)法表示實(shí)數(shù)。setiosflag(ios:fixed)與與setprecision(n)合用,可以控制小合用,可以控制小數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù)。數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù)。setiosflag(ios: scientific)與與setprecision(n)合用,可以控制合用,可以控制科學(xué)計(jì)數(shù)法的小數(shù)位數(shù)??茖W(xué)計(jì)數(shù)法的小數(shù)位數(shù)。面向?qū)ο蟪绦蛟O(shè)
24、計(jì)-第7章32例例7-5 示例分別用浮點(diǎn)、定點(diǎn)和科學(xué)記數(shù)法的方式表示一個(gè)實(shí)數(shù)。示例分別用浮點(diǎn)、定點(diǎn)和科學(xué)記數(shù)法的方式表示一個(gè)實(shí)數(shù)。/example75.cpp#include #include void main() double f=22.0/7; /在用浮點(diǎn)表示的輸出中,在用浮點(diǎn)表示的輸出中,setprecision(n)表示有效位數(shù)表示有效位數(shù) coutfendl; /默認(rèn)有效位數(shù)為默認(rèn)有效位數(shù)為6 coutsetprecision(0)fendl; /最小的有效位數(shù)為最小的有效位數(shù)為1/在用定點(diǎn)表示的輸出中,在用定點(diǎn)表示的輸出中,setprecision(n)表示小數(shù)位數(shù)表示小數(shù)位數(shù)
25、coutsetiosflags(ios:fixed); coutsetprecision(8)fendl; /小數(shù)位數(shù)為小數(shù)位數(shù)為8運(yùn)行結(jié)果:運(yùn)行結(jié)果:3.1428633.14285714面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章334 設(shè)置輸入設(shè)置輸入/輸出整型數(shù)數(shù)制函數(shù)輸出整型數(shù)數(shù)制函數(shù)dec、hex和和oct相當(dāng)于相當(dāng)于printf函數(shù)中用的函數(shù)中用的“%d”, “%x”, “%o”,相同。,相同。默默認(rèn)數(shù)值為認(rèn)數(shù)值為dec。在輸入時(shí),若輸入違例,則強(qiáng)制輸入一個(gè)在輸入時(shí),若輸入違例,則強(qiáng)制輸入一個(gè)0給變量給變量例例7-6 示例違例輸入。示例違例輸入。/example76.cpp /說(shuō)明:說(shuō)明:若輸入十六進(jìn)
26、制數(shù),則顯示若輸入十六進(jìn)制數(shù),則顯示0 0。 #include void main()int i;cini;coutiendl;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章34例例7-7 示例設(shè)置輸出整型數(shù)數(shù)制。示例設(shè)置輸出整型數(shù)數(shù)制。/example77.cpp#include void main() int number=1001; coutDecimal:decnumberendl Hexadecimal:hexnumberendl Octal:octnumberendl;運(yùn)行結(jié)果:運(yùn)行結(jié)果:Decimal:1001Hexadecimal:3e9Octal:1751面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章35例例7-8在上
27、例中增加一個(gè)頭文件,對(duì)十六進(jìn)制數(shù)進(jìn)行大寫控制。在上例中增加一個(gè)頭文件,對(duì)十六進(jìn)制數(shù)進(jìn)行大寫控制。/example78.cpp#include#includevoid main() int number=1001; coutHexadecimal:hex setiosflags(ios:uppercase) numberendl; 運(yùn)行結(jié)果:運(yùn)行結(jié)果:Hexadecimal:3E9面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章36例例7-9 示例設(shè)置輸入示例設(shè)置輸入/輸出整型數(shù)數(shù)制。輸出整型數(shù)數(shù)制。/example79.cpp#include void main() int i,j; long k; char c,s
28、tr40,*s=str; cinihexkcjs; coutiendlhexkendlcendljendlsendl;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章375 取消輸入結(jié)束符函數(shù)取消輸入結(jié)束符函數(shù)ws 此函數(shù)表示可以省去輸入時(shí)用作代表一個(gè)非數(shù)值輸入項(xiàng)結(jié)束此函數(shù)表示可以省去輸入時(shí)用作代表一個(gè)非數(shù)值輸入項(xiàng)結(jié)束的空格或的空格或Tab鍵。鍵。例例7-10 示例示例ws的使用。的使用。/example710.cpp#include void main()char c,d;int i,j;cinwscdij;coutcdi,jendl;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章386.用戶自定義操作符函數(shù)用戶自定義操作符函數(shù)輸出:輸
29、出:ostream& manip_name(ostream& stream) return stream;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章39例例7-11 示例用戶自定義輸出操作符函數(shù)。示例用戶自定義輸出操作符函數(shù)。/example711.cpp#include #include ostream& setup(ostream& stream) stream.setf(ios:left); streamsetw(10)setfill($); return stream;void main() cout10 setup10endl;運(yùn)行結(jié)果:運(yùn)行結(jié)果:10 10$面向?qū)ο蟪?/p>
30、序設(shè)計(jì)-第7章40輸入:輸入:istream& manip_name(istream& stream) return stream;面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章41例例7-12 示例用戶自定義輸入操作符函數(shù)。示例用戶自定義輸入操作符函數(shù)。/example712.cpp#include #include istream& prompt(istream& stream) cinhex; coutprompti; coutiendl;運(yùn)行結(jié)果:運(yùn)行結(jié)果:Enter number using hex format:ab171面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章42 C+有三種文件流類:
31、有三種文件流類: 輸入輸入/輸出文件流類輸出文件流類fstream 輸入文件流類輸入文件流類ifstream 輸出文件流類輸出文件流類ofstream 它們分別從它們分別從I/O流中的流中的iostream、istream、ostream流類中派生而來(lái)。流類中派生而來(lái)。 這些文件流類都定義在這些文件流類都定義在fstream.h頭文件中,因此,頭文件中,因此,要使用文件流類,必須在程序開(kāi)始包含該頭文件。要使用文件流類,必須在程序開(kāi)始包含該頭文件。7.4文件的輸入文件的輸入/輸出輸出面向?qū)ο蟪绦蛟O(shè)計(jì)-第7章43C+中進(jìn)行文件操作的一般步驟中進(jìn)行文件操作的一般步驟 為文件定義一個(gè)流類對(duì)象;為文件定義一個(gè)流類對(duì)象; 使用使用open()函數(shù)建立(或打開(kāi))文件。如果文函數(shù)建立(或打開(kāi))文件。如果文件不存在,則建立該文件;如果磁盤上已存在件不存在,則建立該文件;如果磁盤上
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版四年級(jí)下冊(cè)道德與法治全冊(cè)教案
- 超市節(jié)能減排與用電安全策略
- 跨部門合作在血透室安全文化中的作用
- 科技企業(yè)內(nèi)部的社交網(wǎng)絡(luò)心理建設(shè)
- 質(zhì)量改進(jìn)與技術(shù)創(chuàng)新推動(dòng)企業(yè)發(fā)展的雙輪驅(qū)動(dòng)
- 零售空間中餐飲業(yè)的競(jìng)爭(zhēng)優(yōu)勢(shì)與布局
- 購(gòu)物中心品牌形象塑造與傳播策略研究
- 高校教學(xué)實(shí)驗(yàn)室的日常管理與保養(yǎng)
- 跨界營(yíng)銷策略跨領(lǐng)域品牌建設(shè)與產(chǎn)品熱銷之道
- 零售業(yè)自動(dòng)化技術(shù)標(biāo)準(zhǔn)解讀
- 湖北省2025屆高三下學(xué)期2月調(diào)考語(yǔ)文試題及參考答案
- 2025年《地陪導(dǎo)游服務(wù)程序》公開(kāi)課標(biāo)準(zhǔn)教案
- 愛(ài)耳日完整課件
- 生物醫(yī)藥研發(fā)實(shí)驗(yàn)室的安全風(fēng)險(xiǎn)評(píng)估與控制
- 合肥科技職業(yè)學(xué)院?jiǎn)握杏?jì)算機(jī)類考試復(fù)習(xí)題庫(kù)(含答案)
- 系統(tǒng)集成項(xiàng)目售后服務(wù)方案
- 2018-2022年北京市中考真題數(shù)學(xué)試題匯編:填空壓軸(第16題)
- 初三物理常識(shí)試卷單選題100道及答案
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《智能制造技術(shù)基礎(chǔ)》課件-第6章 智能制造裝備
- 鋼結(jié)構(gòu)地下停車場(chǎng)方案
評(píng)論
0/150
提交評(píng)論