資源描述:
《輸入輸出流ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第13章輸入輸出流13.1C++的輸入和輸出13.2標(biāo)準(zhǔn)輸出流13.3標(biāo)準(zhǔn)輸入流13.4文件操作與文件流13.5字符串流程序的輸入:指的是從輸入文件將數(shù)據(jù)傳送給程序。程序的輸出:指的是從程序?qū)?shù)據(jù)傳送給輸出文件。C++的輸入與輸出包括以下3方面的內(nèi)容:(1)對(duì)系統(tǒng)指定的標(biāo)準(zhǔn)設(shè)備的輸入和輸出。即從鍵盤(pán)輸入數(shù)據(jù),輸出到顯示器屏幕。這種輸入輸出稱為標(biāo)準(zhǔn)的輸入輸出,簡(jiǎn)稱標(biāo)準(zhǔn)I/O。13.1C++的輸入和輸出13.1.1輸入輸出的含義(2)以外存磁盤(pán)文件為對(duì)象進(jìn)行輸入和輸出,即從磁盤(pán)文件輸入數(shù)據(jù),數(shù)據(jù)輸出到磁盤(pán)文件。以外存文件
2、為對(duì)象的輸入輸出稱為文件的輸入輸出,簡(jiǎn)稱文件I/O。(3)對(duì)內(nèi)存中指定的空間進(jìn)行輸入和輸出。通常指定一個(gè)字符數(shù)組作為存儲(chǔ)空間(實(shí)際上可以利用該空間存儲(chǔ)任何信息)。這種輸入和輸出稱為字符串輸入輸出,簡(jiǎn)稱串I/O。C++采取不同的方法來(lái)實(shí)現(xiàn)以上3種輸入輸出。為了實(shí)現(xiàn)數(shù)據(jù)的有效流動(dòng),C++系統(tǒng)提供了龐大的I/O類(lèi)庫(kù),調(diào)用不同的類(lèi)去實(shí)現(xiàn)不同的功能。在C語(yǔ)言中,用printf和scanf進(jìn)行輸入輸出,往往不能保證所輸入輸出的數(shù)據(jù)是可靠的、安全的。在C++的輸入輸出中,編譯系統(tǒng)對(duì)數(shù)據(jù)類(lèi)型進(jìn)行嚴(yán)格的檢查,凡是類(lèi)型不正確的數(shù)據(jù)都不可能
3、通過(guò)編譯。C++的I/O操作是可擴(kuò)展的,不僅可以用來(lái)輸入輸出標(biāo)準(zhǔn)類(lèi)型的數(shù)據(jù),也可以用于用戶自定義類(lèi)型的數(shù)據(jù)。C++通過(guò)I/O類(lèi)庫(kù)來(lái)實(shí)現(xiàn)豐富的I/O功能。13.1.2C++的I/O對(duì)C的發(fā)展——類(lèi)型安全和可擴(kuò)展性C++的輸入輸出流是指由若干字節(jié)組成的字節(jié)序列,這些字節(jié)中的數(shù)據(jù)按順序從一個(gè)對(duì)象傳送到另一對(duì)象。流表示了信息從源到目的端的流動(dòng)。在輸入操作時(shí),字節(jié)流從輸入設(shè)備(如鍵盤(pán)、磁盤(pán))流向內(nèi)存,在輸出操作時(shí),字節(jié)流從內(nèi)存流向輸出設(shè)備(如屏幕、打印機(jī)、磁盤(pán)等)。流中的內(nèi)容可以是ASCII字符、二進(jìn)制形式的數(shù)據(jù)、圖形圖像、數(shù)字
4、音頻視頻或其他形式的信息。13.1.3C++的輸入輸出流在C++中,輸入輸出流被定義為類(lèi)。C++的I/O庫(kù)中的類(lèi)稱為流類(lèi)(streamclass)。用流類(lèi)定義的對(duì)象稱為流對(duì)象。cout和cin并不是C++語(yǔ)言中提供的語(yǔ)句,它們是iostream類(lèi)的對(duì)象,在未學(xué)習(xí)類(lèi)和對(duì)象時(shí),在不致引起誤解的前提下,為敘述方便,把它們稱為cout語(yǔ)句和cin語(yǔ)句。在學(xué)習(xí)了類(lèi)和對(duì)象后,我們對(duì)C++的輸入輸出應(yīng)當(dāng)有更深刻的認(rèn)識(shí)。1.iostream類(lèi)庫(kù)中有關(guān)的類(lèi)C++編譯系統(tǒng)提供了用于輸入輸出的iostream類(lèi)庫(kù)。iostream意為輸入輸
5、出流。在iostream類(lèi)庫(kù)中包含許多用于輸入輸出的類(lèi)。常用的見(jiàn)書(shū)中表13.1。ios是抽象基類(lèi),由它派生出istream類(lèi)和ostream類(lèi),兩個(gè)類(lèi)名中第1個(gè)字母i和o分別代表輸入和輸出。istream類(lèi)支持輸入操作,ostream類(lèi)支持輸出操作,iostream類(lèi)支持輸入輸出操作。iostream類(lèi)是從istream類(lèi)和ostream類(lèi)通過(guò)多重繼承而派生的類(lèi)。其繼承層次見(jiàn)圖13.1表示。圖13.1C++對(duì)文件的輸入輸出需要用ifstream和ofstream類(lèi),ifstream支持對(duì)文件的輸入操作,ofstream
6、支持對(duì)文件的輸出操作。類(lèi)ifstream繼承了類(lèi)istream,類(lèi)ofstream繼承了類(lèi)ostream,類(lèi)fstream繼承了類(lèi)iostream。見(jiàn)圖13.2。I/O類(lèi)庫(kù)中還有其他類(lèi),見(jiàn)圖13.3。圖13.2圖13.32.與iostream類(lèi)庫(kù)有關(guān)的頭文件iostream類(lèi)庫(kù)中不同的類(lèi)的聲明被放在不同的頭文件中,用戶在自己的程序中用#include命令包含了有關(guān)的頭文件就相當(dāng)于在本程序中聲明了所需要用到的類(lèi)。常用的有iostream包含了對(duì)輸入輸出流進(jìn)行操作的基本信息。fstream用于用戶管理的文件的I/O操作。s
7、trstream用于字符串流I/O。stdiostream用于混合使用C和C++的I/O機(jī)制時(shí)。iomanip在使用格式化I/O時(shí)應(yīng)包含此頭文件。3.在iostream頭文件中定義的流對(duì)象在iostream頭文件中定義的類(lèi)有ios,istream,ostream,iostream,istream_withassign,ostream_withassign,iostream_withassign等。iostream.h包含了對(duì)輸入輸出流進(jìn)行操作所需的基本信息。因此大多數(shù)C++程序都包括iostream.h。在iostre
8、am.h頭文件中不僅定義了有關(guān)的類(lèi),還定義了4種流對(duì)象,見(jiàn)書(shū)中表13.2。表13.2iostream.h文件中定義的4種流對(duì)象對(duì)象含義設(shè)備對(duì)應(yīng)的類(lèi)標(biāo)準(zhǔn)文件cin標(biāo)準(zhǔn)I流鍵盤(pán)istream_withassignstdincout標(biāo)準(zhǔn)O流屏幕ostream_withassignstdoutcerr標(biāo)準(zhǔn)ERR流屏幕ostream_wit