欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件

上傳人:仙*** 文檔編號(hào):138925441 上傳時(shí)間:2022-08-22 格式:PPT 頁(yè)數(shù):62 大?。?26KB
收藏 版權(quán)申訴 舉報(bào) 下載
C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件_第1頁(yè)
第1頁(yè) / 共62頁(yè)
C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件_第2頁(yè)
第2頁(yè) / 共62頁(yè)
C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件_第3頁(yè)
第3頁(yè) / 共62頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《C程序設(shè)計(jì)語(yǔ)言揣錦華第9章流類庫(kù)與輸入輸出ppt課件(62頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第9章 流類庫(kù)與輸入/輸出第第9章章 流類庫(kù)與輸入流類庫(kù)與輸入/輸出輸出 9.1 輸入輸入/輸出規(guī)范流類輸出規(guī)范流類9.2 文件流類文件流類9.3 串流類串流類9.4 控制符控制符第9章 流類庫(kù)與輸入/輸出9.1 輸入輸入/輸出規(guī)范流類輸出規(guī)范流類 9.1.1 輸入/輸出流的概念 就像C言語(yǔ)一樣,C+言語(yǔ)中也沒有輸入/輸出語(yǔ)句。C+的I/O是以字節(jié)流的方式實(shí)現(xiàn)的,每一個(gè)C+編譯系統(tǒng)都帶有一個(gè)面向?qū)ο蟮妮斎?輸出軟件包,這就是I/O流類庫(kù)。其中,流是I/O流類的中心概念。到目前為止,我們不斷在運(yùn)用它。第9章 流類庫(kù)與輸入/輸出 所謂流,是指數(shù)據(jù)從一個(gè)對(duì)象流向另一個(gè)對(duì)象。在C+程序中,數(shù)據(jù)可以從鍵

2、盤流入到程序中,也可以從程序中流向屏幕或磁盤文件,把數(shù)據(jù)的流動(dòng)籠統(tǒng)為“流。流在運(yùn)用前要被建立,運(yùn)用后要被刪除,還要運(yùn)用一些特定的操作從流中獲取數(shù)據(jù)或向流中添加數(shù)據(jù)。從流中獲取數(shù)據(jù)的操作稱為提取操作,向流中添加數(shù)據(jù)的操作稱為插入操作。第9章 流類庫(kù)與輸入/輸出 流實(shí)踐上就是一個(gè)字節(jié)序列。在輸入操作中,字節(jié)從輸入設(shè)備(如鍵盤、磁盤、網(wǎng)絡(luò)銜接等)流向內(nèi)存;在輸出操作中,字節(jié)從內(nèi)存流向輸出設(shè)備(如顯示器、打印機(jī)、磁盤、網(wǎng)絡(luò)銜接等)。如圖9-1所示。在C+言語(yǔ)中,針對(duì)流的特點(diǎn),提供了如圖9-2所示的層次構(gòu)造來(lái)描畫流的行為,并給出了I/O流類庫(kù)的操作。第9章 流類庫(kù)與輸入/輸出第9章 流類庫(kù)與輸入/輸出圖

3、9-2 輸入/輸出流類層次圖 第9章 流類庫(kù)與輸入/輸出 表9-1 I/O流類列表 第9章 流類庫(kù)與輸入/輸出 9.1.2 輸入/輸出規(guī)范流類 1規(guī)范流的設(shè)備名 由表9-1可見,I/O流的規(guī)范頭文件是iostream.h。其中,ostream類經(jīng)過其派生類ostream_withassign支持以下預(yù)先定義的流對(duì)象:cout:規(guī)范輸出。默許設(shè)備為屏幕。cerr:規(guī)范錯(cuò)誤輸出。沒有緩沖,發(fā)送給它的內(nèi)容立刻被輸出,默許設(shè)備為屏幕。第9章 流類庫(kù)與輸入/輸出 clog:規(guī)范錯(cuò)誤輸出。有緩沖,當(dāng)緩沖區(qū)滿時(shí)被輸出,默許設(shè)備為打印機(jī)。而istream類經(jīng)過其派生類istream_withassign支持預(yù)

4、先定義的對(duì)象。cin:規(guī)范輸入。默許設(shè)備為鍵盤。第9章 流類庫(kù)與輸入/輸出 2原理 cout是ostream類的全局對(duì)象,它在頭文件iostream.h中的定義如下:ostream cout(stdout);/這里,stdout作為該對(duì)象構(gòu)造時(shí)的參數(shù)對(duì)應(yīng)每種根本數(shù)據(jù)類型,ostream類都存在友元,它們都在iostream.h中聲明。例如:ostream&operator(int n);ostream&operator(float f);ostream&operator(const char*psz);/.第9章 流類庫(kù)與輸入/輸出 如語(yǔ)句:coutHow old are you?;cout是

5、類ostream的對(duì)象,(int&n);istream&operator(float&f);istream&operator(char*psz);/.第9章 流類庫(kù)與輸入/輸出9.2 文件流類文件流類 fstream、ifstream和ofstream是文件流類,在頭文件fstream.h中定義。其中,fstream是ofstream和ifstream多重承繼的子類。文件流類不是規(guī)范設(shè)備,沒有cout那樣預(yù)先定義的全局對(duì)象。文件流類支持對(duì)磁盤文件的操作。要定義一個(gè)文件流類對(duì)象,須指定文件名和翻開方式。第9章 流類庫(kù)與輸入/輸出類ofstream用于執(zhí)行文件輸出,該類有以下幾個(gè)構(gòu)造函數(shù):ofst

6、ream:ofstream(filedesc fd);ofstream:ofstream(filedesc fd,char*pch,int nLength);ofstream:ofstream(const char*szName,int nMode=ios:out,int nProt=filebuf:openprot);第9章 流類庫(kù)與輸入/輸出類ifstream用于執(zhí)行文件輸入,該類有以下幾個(gè)構(gòu)造函數(shù):ifstream:ifstream(filedesc fd);ifstream:ifstream(filedesc fd,char*pch,int nLength);ifstream:ifst

7、ream(const char*szName,int nMode=ios:in,int nProt=filebuf:openprot);第9章 流類庫(kù)與輸入/輸出 其中最常用的都是最后一個(gè)構(gòu)造函數(shù)。該函數(shù)有三個(gè)參數(shù),第一個(gè)參數(shù)是指向要翻開的文件名的字符串,后兩個(gè)參數(shù)指定文件的翻開方式。文件翻開方式的詳細(xì)標(biāo)志見表9-2??梢杂冒次籓R|運(yùn)算符組合這些標(biāo)志,它們作為枚舉器定義在ios類中。第9章 流類庫(kù)與輸入/輸出 表9-2 文件翻開方式 第9章 流類庫(kù)與輸入/輸出 翻開一個(gè)輸出文件,用于在文件尾添加數(shù)據(jù) 翻開一個(gè)現(xiàn)存文件(用于輸入或輸出)并查找到結(jié)尾 翻開一個(gè)輸入文件。對(duì)于一個(gè)ofstream文

8、件,運(yùn)用ios:in作為一個(gè)openmode,可防止刪除一個(gè)現(xiàn)存文件中現(xiàn)有的內(nèi)容 翻開一個(gè)文件,用于輸出。對(duì)于一切ofstream對(duì)象,此方式是隱含指定的 假設(shè)一個(gè)文件存在,那么翻開它;否那么該操作失敗第9章 流類庫(kù)與輸入/輸出 假設(shè)一個(gè)文件不存在,那么作為新文件翻開它;假設(shè)文件已存在,那么該操作失敗 翻開一個(gè)文件。假設(shè)它曾經(jīng)存在,那么刪除其中原有的內(nèi)容。假設(shè)指定了ios:out,但沒有指定ios:ate、ios:app和ios:in,那么隱含為此方式 以二進(jìn)制方式翻開一個(gè)文件(默許是文本方式)Nprot是文件維護(hù)方式,它的標(biāo)志如表9-3。第9章 流類庫(kù)與輸入/輸出 表9-3 文件維護(hù)方式 第

9、9章 流類庫(kù)與輸入/輸出【例9-1】向文件myfile中寫入一些信息。#includevoid main()ofstream fc(c:tempmyfile);fcConstructs an ofstream object.nAll ofstream constructors construct a filebuf object.n;第9章 流類庫(kù)與輸入/輸出 留意:這里的文件名要闡明其途徑,要運(yùn)用雙斜杠,由于C+編譯器了解單斜杠為字符轉(zhuǎn)換符。在 文 件 翻 開 時(shí),匹 配 了 構(gòu) 造 函 數(shù)ofstream:ofstream(char*),只需求一個(gè)文件名,其它為默許。翻開方式默以為ios:

10、out|ios:trunc,即該文件用于接受程序的輸出。假設(shè)該文件已存在,那么其內(nèi)容必需先去除,否那么就新建。第9章 流類庫(kù)與輸入/輸出假設(shè)要檢查文件能否翻開,那么須判別成員函數(shù)fail():#include void func()ofstream fc(myfile);if(fc.fail()/fail()=1 cerrerror opening filen;return;fca;coutaendl;輸出結(jié)果為 H第9章 流類庫(kù)與輸入/輸出【例9-2】運(yùn)用串流輸入對(duì)字符串中的數(shù)據(jù)進(jìn)展解讀。#include#includechar*ioString(char*);void main()char

11、*str=100 123.456;char*Buf0=ioString(str);coutBuf0iNumberfNumber;/從串流中讀入一個(gè)整數(shù)和浮點(diǎn)數(shù)char*Buf1=new char28;ostrstream outS(Buf1,28);outSiNumber=iNumber,fNumber=fNumberendl;return Buf1;第9章 流類庫(kù)與輸入/輸出 程序運(yùn)轉(zhuǎn)結(jié)果為 iNumber=100,fNumber=123.456 分析:在函數(shù)ioString()中,以pString為輸入設(shè)備,先定義一個(gè)輸入串流對(duì)象inS,從中輸入一個(gè)整數(shù)和一個(gè)浮點(diǎn)數(shù)。再開辟一個(gè)字符串空間作

12、為輸出設(shè)備,定義一個(gè)輸出串流對(duì)象outS,將從輸入設(shè)備輸入的兩個(gè)變量的值輸出。第9章 流類庫(kù)與輸入/輸出9.4 控制符控制符 9.4.1 運(yùn)用流對(duì)象的成員函數(shù)【例9-3】運(yùn)用width成員函數(shù)控制輸出寬度。#include void main()double values=1.44,36.47,625.7,4096.24;for(int i=0;i4;i+)第9章 流類庫(kù)與輸入/輸出cout.width(10);coutvaluesin;程序運(yùn)轉(zhuǎn)結(jié)果為 1.4436.47625.74096.24第9章 流類庫(kù)與輸入/輸出 此例子在一列中以致少10個(gè)字符寬按右對(duì)齊方式輸出數(shù)據(jù)。從程序的輸出結(jié)果可

13、以看到,在少于10個(gè)字符寬的數(shù)值前參與了引導(dǎo)空格??崭袷悄S的填充符,當(dāng)輸出的數(shù)據(jù)不能充溢指定的寬度時(shí),系統(tǒng)會(huì)自動(dòng)以空格填充。另外,還可以運(yùn)用fill成員函數(shù)為曾經(jīng)指定寬度的域設(shè)置填充字符的值。為了用星號(hào)填充數(shù)值列,我們可以將例9-3中的for循環(huán)修正如下:第9章 流類庫(kù)與輸入/輸出for(int i=0;i4;i+)cout.width(10);cout.fill(*);coutvaluesiendl;其輸出結(jié)果為*1.44*36.47*625.7*4096.24第9章 流類庫(kù)與輸入/輸出 9.4.2 運(yùn)用控制符 C+的輸入/輸出流類庫(kù)提供了一些控制符,可以直接嵌入到輸入/輸出語(yǔ)句中來(lái)實(shí)現(xiàn)對(duì)

14、I/O格式的控制。它的優(yōu)點(diǎn)是程序可以直接將控制符插入流中,而不用單獨(dú)調(diào)用。表9-4中列出了常用的I/O流類庫(kù)控制符。第9章 流類庫(kù)與輸入/輸出表9-4 常用的I/O流類庫(kù)控制符第9章 流類庫(kù)與輸入/輸出第9章 流類庫(kù)與輸入/輸出【例9-4】運(yùn)用setw控制符指定寬度。#include#includevoid main()double values=1.44,36.47,625.7,4096.24;char*names=Rose,John,Alice,Mary;for(int i=0;i4;i+)第9章 流類庫(kù)與輸入/輸出 coutsetw(6)namesisetw(10)valuesiendl

15、;width成員函數(shù)在頭文件iostream.h中闡明。假設(shè)帶參量運(yùn)用setw(n)或任何其它控制符,還必需包括頭文件iomanip.h。在輸出中,字符串輸出在寬度為6的域中,整數(shù)輸出在寬度為10的域中。程序運(yùn)轉(zhuǎn)結(jié)果為 Rose 1.44 John 36.47 Alice 625.7 Mary 4096.24第9章 流類庫(kù)與輸入/輸出 setw和width都不截?cái)鄶?shù)值。假設(shè)一個(gè)數(shù)值需求比set(n)確定的字符數(shù)更多的字符,那么該值將運(yùn)用它所需求的一切字符。當(dāng)然,還要遵守該流的精度設(shè)置。setw和width僅影響緊隨其后的域,即使用setw和width設(shè)置的間隔方式并不保管其效能。在一個(gè)域輸出完

16、后,域?qū)挾然謴?fù)成它的默許值(必要的寬度),但其它流格式選項(xiàng)堅(jiān)持有效直到發(fā)生改動(dòng)。第9章 流類庫(kù)與輸入/輸出例如,下面的程序代碼:/.cout setiosflags(ios:right)/設(shè)置為默許的右對(duì)齊方式,setw(5)1setw(5)2setw(5)3endl;cout setiosflags(ios:left)/設(shè)置成左對(duì)齊方式 第9章 流類庫(kù)與輸入/輸出 setw(5)1 setw(5)2 setw(5)3endl;coutresetiosflags(ios:left)/封鎖左對(duì)齊標(biāo)志 /.這段程序代碼中,是經(jīng)過運(yùn)用帶參數(shù)的setiosflags控制符來(lái)設(shè)置左、右對(duì)齊,參數(shù)是ios

17、:left和ios:right枚舉器。第9章 流類庫(kù)與輸入/輸出 該枚舉器定義在ios類中,因此,援用時(shí)必需包括ios:前綴。這里需求用resctiosflags支配符封鎖左、右對(duì)齊標(biāo)志。setiosflags不同于width和setw,它的影響是耐久的,直到用resetiosflags重新恢復(fù)默許值時(shí)為止。這段程序代碼的輸出結(jié)果為 1 2 3 1 2 3 常用控制符和流格式控制成員函數(shù)如表9-5所示。第9章 流類庫(kù)與輸入/輸出表9-5 常用控制符和流成員函數(shù) 第9章 流類庫(kù)與輸入/輸出9.5 輸入輸入/輸出成員函數(shù)輸出成員函數(shù) 9.5.1 運(yùn)用成員函數(shù)輸入 1getline()函數(shù) 在程序運(yùn)

18、用cin輸入時(shí),cin用空白符和行終了符將各個(gè)值分開。有時(shí)候輸入能夠需求讀取一整行文本并且分開不同的域,為此,我們可以運(yùn)用getline成員函數(shù)。其函數(shù)原型如下:istream&getline(char*pch,int nCount,char delim=n);第9章 流類庫(kù)與輸入/輸出 其中,第一個(gè)參數(shù)是字符數(shù)組,用于放置讀取的文本;第二個(gè)參數(shù)是本次讀取的最大字符個(gè)數(shù);第三個(gè)參數(shù)是分隔字符,作為讀取一行終了的標(biāo)志。getline成員函數(shù)的功能是允許從輸入流中讀取多個(gè)字符(包括空白字符和行終了符),并且允許指定輸入終止字符(默許值是換行字符)。在讀取完成后,從讀取的內(nèi)容中刪除該終止字符。第9章

19、 流類庫(kù)與輸入/輸出 【例9-5】為輸入流指定一個(gè)終止字符。本程序延續(xù)讀入一串字符,直到遇到字符t時(shí)停頓,字符個(gè)數(shù)最多不超越99個(gè)。程序中的t是大小寫敏感的。#include void main()char line100;coutType a line terminated by tendl;cin.getline(line,100,t);coutlineendl;第9章 流類庫(kù)與輸入/輸出 2get()函數(shù) 在輸入時(shí),有些時(shí)候需求執(zhí)行每次只輸入單個(gè)字符的操作,我們可以運(yùn)用get()成員函數(shù)來(lái)完成。get()函數(shù)的格式如下:char istream:get();【例9-6】循環(huán)讀入字符,直到

20、鍵入一個(gè)y字符,或遇到文件尾。#include void main()char letter;while(!cin.eof()第9章 流類庫(kù)與輸入/輸出letter=cin.get();if(letter=y)coutybe met!;break;coutletter;第9章 流類庫(kù)與輸入/輸出 get()函數(shù)還有一種方式可以輸入一系列字符,直到輸入流中出現(xiàn)終了符或所讀字符個(gè)數(shù)已到達(dá)要求讀的字符個(gè)數(shù)。這時(shí),get()函數(shù)的函數(shù)原型如下:istream&istream:get(char*,int n,char delim=n);第9章 流類庫(kù)與輸入/輸出 例如,下面程序輸入一系列字符,將前24個(gè)

21、字符輸出。#include void main()char line25;cout;cin.get(line,25);cout line;第9章 流類庫(kù)與輸入/輸出 9.5.2 運(yùn)用成員函數(shù)輸出 【例9-7】運(yùn)用put()成員函數(shù),在屏幕上顯示字母表中的字母。#include void main()char letter;for(letter=A;letter=Z;letter+)cout.put(letter);第9章 流類庫(kù)與輸入/輸出程序運(yùn)轉(zhuǎn)結(jié)果為ABCDEFGHIJKMNOPQRSTUVWXYZ也可以像下面那樣在一條語(yǔ)句中延續(xù)調(diào)用put()函數(shù):cout.put(A).put(n);該

22、語(yǔ)句在輸出字符A后輸出一個(gè)新?lián)Q行符。還可以用ASCII碼值表達(dá)式調(diào)用put()函數(shù):cout.put(65);該語(yǔ)句也輸出字符A。第9章 流類庫(kù)與輸入/輸出9.6 用戶自定義類型的輸入用戶自定義類型的輸入/輸出輸出【例9-8】用戶自定義的插入運(yùn)算符和提取運(yùn)算符。#include class PhoneNumber private:char nationCode4;char areaCode4;char phoneCode8;第9章 流類庫(kù)與輸入/輸出public:friend ostream&operator(istream&,PhoneNumber&);ostream&operator(os

23、tream&output,PhoneNumber&num)output(num.nationCode)num.areaCode-(istream&input,PhoneNumber&num)input.ignore();/跳過 input.getline(num.nationCode,4);input.ignore();/跳過 input.getline(num.areaCode,4);input.ignore();/跳過-input.getline(num.phoneCode,8);return input;第9章 流類庫(kù)與輸入/輸出void main()PhoneNumber phone;

24、coutEnter a telephone number in thephone;coutThe phone number entered was:nphonephone1phone2;第9章 流類庫(kù)與輸入/輸出 插入運(yùn)算符的兩個(gè)參數(shù)是對(duì)ostream對(duì)象的援用和對(duì)自定義類型本例中為PhoneNumber的對(duì)象的援用,前往對(duì)ostream對(duì)象的援用。在該程序中,重載的插入運(yùn)算符按輸入格式顯示類PhoneNumber的對(duì)象。該運(yùn)算符函數(shù)將號(hào)碼各部分顯示為字符串,由于它們是以字符串格式存儲(chǔ)的類istream中的成員函數(shù)getline在終了輸入后存儲(chǔ)一個(gè)空字符。第9章 流類庫(kù)與輸入/輸出 重載的運(yùn)算符函數(shù)在類PhoneNumber中被聲明為友元函數(shù)。為了可以訪問類中非公有成員,重載的輸入和輸出運(yùn)算符必需被聲明為類的友元。C+允許為用戶自定義類型添加新的輸入/輸出才干,而無(wú)需修正類ostream或istream中的聲明和私有數(shù)據(jù)成員。這大大提高了C+的可擴(kuò)展性。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!