C++面向對象程序設計講稿_第1頁
C++面向對象程序設計講稿_第2頁
C++面向對象程序設計講稿_第3頁
C++面向對象程序設計講稿_第4頁
C++面向對象程序設計講稿_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

《C++面向對象程序設計》輸入輸出流第7章2本章內容7.1C++的輸入和輸出7.2標準輸出流7.3標準輸入流7.4文件操作與文件流7.5字符串流3目標理解C++輸入輸出流及相關概念(★)理解標準輸出流對象的使用及輸出格式控制(★★)理解標準輸入流對象及輸入流的成員函數的使用(★★)理解文件概念、文件流與文件流對象的相關知識(★)理解二進制和文本文件的操作(★★)4第7章輸入輸出流7.1C++的輸入和輸出7.2標準輸出流7.3標準輸入流7.4文件操作與文件流7.5字符串流57.1C++的輸入和輸出

(一)輸入輸出的含義(二)C++的I/0對C的發展(三)C++的輸入輸出流67.1C++的輸入和輸出

(一)輸入輸出的含義程序的輸入是指從輸入文件將數據傳送給程序,輸出是指將數據傳送給輸出文件。

如:從鍵盤輸入數據給程序、將程序運行結果顯示在顯示器上等。從操作系統的角度來看,每一個與主機相連的輸入輸出設備都被看作文件。文件是輸入輸出操作的對象。C++系統提供龐大的I/O類庫,調用不同的類去實現不同的功能.77.1C++的輸入和輸出

(一)輸入輸出的含義C++的輸入與輸出包括以下3方面的內容:(1)對系統指定的標準設備的輸入和輸出,稱為標準的輸入輸出,簡稱標準I/0。(2)以外存磁盤文件為對象進行輸入和輸出,稱為文件的輸入輸出,簡稱文件I/O。(3)對內存中指定的空間進行輸入和輸出,稱為字符串輸出輸出,簡稱串I/O。87.1C++的輸入和輸出

(二)C++的I/O對C的發展類型安全C++為了兼容C,保留了用printf和scanf進行輸出輸入的方法。C++在輸入輸出中添加了,編譯系統對數據類型的嚴格檢查。類型不正確的數據不能通過編譯。可擴展性C++的I/O除了可以輸入輸出標準類型的數據以外,還可以輸入輸出用戶自定義數據類型。97.1C++的輸入和輸出

(三)C++的輸入輸出流C++的輸入輸出流簡介

“流”就是數據流,是字符序列在主機與外部介質之間的流動,它負責在數據的產生者和使用者之間建立聯系,并管理數據的流動。具有方向性。內存輸出緩沖區輸入緩沖區輸出設備輸入設備數據形成cin流>><<數據形成cout流107.1C++的輸輸入和輸出(三)C++的輸入輸出出流C++中,輸輸入輸出流被被定義為類,,稱為流類,用流類定義義的對象稱為為流對象(cin,cout)。。C++提供的的用于輸入輸輸出的iostream類庫存。(查看P222表7.1)C++的流庫庫(streamlibrary))是用繼承方方法建立起來來的一個輸入入輸出類庫。。(查看P223圖7.3)117.1C++的輸輸入和輸出(三)C++的輸入輸出出流與iostream類庫庫有關的頭文文件iostream:包含使用標準準輸入輸出流流所需的所有有聲明和定義義。它包含四四個標準流對對象:cin、cout、cerr、clog,提供了了無格式和格格式化的I/O功能。fstream:包含有關文件件處理的信息息,提供建立立文件和讀寫寫文件等各種種操作的接口口。strstream:用于字符串流流的i/o。。stdiostream:用于混合使用用C和C++的I/O機機制。iomanip:在使用格式化化I/O時包包含此頭文件件。127.1C++的輸輸入和輸出(三)C++的輸入輸出出流在iostream頭文文件中定義的的流對象C++中標準流設備名稱默認設備默認含義cin鍵盤標準輸入cout屏幕標準輸出cerr屏幕標準錯誤輸出clog打印機標準錯誤輸出13第7章輸入入輸出流7.1C++的輸入入和輸出7.2標標準輸出流7.3標標準輸入流7.4文文件操作與文文件流7.5字字符串流147.4文文件操作與與文件流(一)文件的的概念(二)文件流流類和文件流流對象(三)文件的的打開與關閉閉(四)對ASCII文件件的操作(五)對二進進制文件的操操作157.4文文件操作與與文件流(一)文件的的概念文件:指存儲在外部部介質上的數數據集合,操操作系統以文文件為單位對對數據進行管管理。根據存儲格式可以把文件分分為兩種類型型:ASCII碼碼文件(文本文件)內部格式文件(二進制文件)。如:100文本:001100010011000000110000---3B二進制:01100100-------------------1B167.4文文件操作與與文件流(一)文件的的概念(二)文件流流類和文件流流對象(三)文件的的打開與關閉閉(四)對ASCII文件件的操作(五)對二進進制文件的操操作177.4文文件操作與與文件流(二)文件流流類和文件流流對象文件流:以外存文件件為輸入輸出出對象的數據據流。文件流與文件件是有區別的的。文件流本身不不是文件,只只是以文件為輸入入輸出對象的的流。文件流不是若若干個文件組組成的流。C++對文件件的讀寫操作作包含3個基基本步驟:建立一個文件件流對象把文文件流對象與與實際文件相相關聯,稱為為打開文件;對文件流進行行讀/寫操作;關閉文件。187.4文文件操作與與文件流(二)文件流流類和文件流流對象C++的I/O類庫中定定義了三種文文件類,專門門用于文件操操作。ifstream類:從istream類派生生,用來支持持磁盤文件的的輸入。ofstream類:從ostream類派生生,用來支持持磁盤文件的的輸出。fstream類:從iostream類派派生,用來支支持磁盤文件件的輸入和輸輸出。197.4文文件操作與與文件流(一)文件的的概念(二)文件流流類和文件流流對象(三)文件的的打開與關閉閉(四四))對對ASCII文文件件的的操操作作(五五))對對二二進進制制文文件件的的操操作作207.4文文件件操操作作與與文文件件流流(三三))文文件件的的打打開開與與關關閉閉打開開文文件件打開開文文件件操操作作包包括括建建立立文文件件流流對對象象,,與與外外部部文文件件關關聯聯,,指指定定文文件件的的打打開開方方式式。。打開開文文件件有有兩兩種種方方式式::方式式一一::先建建立立流流對對象象,,后后調調用用open連連接接外外部部文文件件。。流類類對象象名名;對對象象名名.open(文件件名名,打打開開方方式式);方式式二二::調用用流流類類帶帶參參數數的的構構造造函函數數,,建建立立對對象象的的同同時時連連接接外外部部文文件件。。流類類對象象名名(文件件名名,打打開開方方式式);217.4文文件件操操作作與與文文件件流流(三三))文文件件的的打打開開與與關關閉閉打開開文文件件方式式一一::流類類對象象名名;對對象象名名.open(文件件名名,打打開開方方式式);方式式二二::流流類類對象象名名(文件件名名,打打開開方方式式);“流類類”是是流流類類庫庫中中定定義義的的文文件件流流類類,,ifstream用用于于讀讀方方式式打打開開文文件件,,ofstream用用于于寫寫方方式式打打開開文文件件,,而而fstream用用于于讀讀/寫寫方方式式打打開開文文件件。。“打開方式式”是ios定義義的標識識常量,,表示文文件的訪訪問方式式(查看表7-7)。用戶定義義標識符符外部文件件名227.4文文件操作作與文件件流(三)文文件的打打開與關關閉打開文件件方式一::流類對象名;對對象名名.open(文件名,打開方方式);方式二::流流類類對象名(文件名,打開方方式);ifstreaminfile;infile.open(““d:\\file1.txt””,ios::in);fstreamrwfile(““d:\\file3.txt””,ios::in|ios::out);237.4文文件操作作與文件件流(三)文文件的打打開與關關閉打開文件件說明事項項:新版本C++的的I/O類庫中中不提供供ios::nocreate和ios::noreplace。每個打開開的文件件都有一一個文件指針針,它的初初始位置置由I/O方式式決定。。可以用“|”位位或運算算符對輸入輸輸出方式式進行組組合。如果打開失敗敗,open函函數返回回0值。可據此此測試打打開是否否成功。。247.4文文件操作作與文件件流(三)文文件的打打開與關關閉關閉文件件當一個文文件讀寫寫操作完完畢后,,應及時時關閉文文件。關閉文件件操作主主要完成成將緩沖沖區數據據完整地地寫入文文件,添添加文件件結束標標志,切切斷流對對象和外外部文件件的連接接等任務務。關閉文件件方式::對象名.close();例:257.4文文件操作作與文件件流#include<iostream>#include<fstream>usingnamespacestd;intmain(){ofstreamoutfile("d:\\f1.txt",ios::out);if(!outfile)cout<<"打開文文件錯誤誤!"<<endl;outfile.close();return0;}267.4文文件操作作與文件件流(一)文文件的概概念(二)文文件流類類和文件件流對象象(三)文文件的打打開與關關閉(四)對對ASCII文文件的操操作(五)對對二進制制文件的的操作277.4文文件操作作與文件件流(四)對對ASCII文文件的操操作ASCII文件件:文件的每每一個字字節中均均以ASCII碼形式式存放數數據,即即一個字字節存放放一個字字符。ASCII文件件的讀寫寫操作有有兩種形形式:用“<<””和“>>”輸入輸出出標準類類型的數數據。用文件流流中的put,,get,getline等等成員函函數進行字符符的輸入入輸出。。例:整形形數組含含3個元元素,將將他們存存到文件件中,并并取出來來,在屏屏幕上顯顯示。287.4文文件操作作與文件件流(一)文文件的概概念(二)文文件流類類和文件件流對象象(三)文文件的打打開與關關閉(四)對對ASCII文文件的操操作(五)對對二進制制文件的的操作297.4文文件操作作與文件件流(五)對對二進制制文件的的操作二進制文文件:將內存中中數據存存儲形式式不加轉轉換地傳傳送到磁磁盤文件件中,即即以二進進制形式式存儲信信息。打開二進進制文件件時,必必須要指指定ios::binary。用成員函函數read和和write讀讀寫二進進制文件件istream&read(char*buffer,intlen);ostream&write(constchar*buffer,intlen);指向內內存中中一段段存儲儲空間間讀寫的的字節節數307.4文文件操操作與與文件件流(五))對二二進制制文件件的操操作例:將將三個個學生生的信信息存存到二二進制制文件件中,,學生生定義義如下下:structstudent{charname[20];intnum;intage;charsex;};317.4文文件操操作與與文件件流(五))對二二進制制文件件的操操作與文件件指針針相關關的流流成員員函數數(P254表表7.7)文件指指針相相對移移動函函數移動讀讀指針針:seekg();移動寫寫指針針:seekp();32練習例7.13從鍵盤盤中讀讀入一一行字字符,,將其其中的的字母母字符符依次次存入入f2.dat中,,再將將文件件中的的內容容讀入入程序序,將將小寫寫字母母改成成大寫寫字母母,存存入f3.dat中中。思考::何種種文件件形式式?閱讀分分析例例7.1633實驗十十一文文件件操作作實驗內內容::課后后第5題實驗時時間::周五五三單單元實驗報報告::十六六周周周二一一單元元上交交34小結(一))文件件的概概念(二)文件件流類和文文件流對象象(三)文件件的打開與與關閉(四)對ASCII文件的操操作(五)對二二進制文件件的操作357.4文文件操操作與文件件流(五)對二二進制文件件的操作與文件指針針相關的流流成員函數數參照位置::ios::cur當當前位置置ios::end結結尾ios:beg開開頭例:infile.seekg(100)infile.seekg(-50,ios::cur)Outfile.seekg(10,ios::beg)36第7章輸輸入輸出流流7.1C++的的輸入和輸輸出7.2標標準輸出出流7.3標標準輸入入流7.4文文件操作作與文件流流7.5字字符串流流377.2標標準輸輸出流(一)cout、cerr、、clog流對象cout它是ostream流類的對對象,表示示流向顯示示器的數據據,用流插入運算符“<<”順序序加入。用“cout<<””可以直接接輸出基本本類型數據據。例:inta,b;cout<<a<<b;如果想輸出出用戶定義義數據類型型,必須先先進行運算算符的重載載。例:定義complex類,實現現該對象的的輸出。complexc1;cout<<c1;ostream&opeator<<(ostream&,complex&);387.2標標準輸輸出流(一)cout、cerr、、clog流對象cerr::是標準出錯錯流,被指指定為與顯顯示器關聯聯,它的作作用是向標標準出錯設設備輸出有有關出錯信信息。例:(查看P227例例7.1))clog::是標準出錯錯流,作用用也是在終終端顯示器器上顯示出出錯信息。。cerr與與clog的區別:cerr不不經過緩沖沖區,直接接向顯示器器輸出有關關信息。clog中中的信息存存放在緩沖沖區中,緩緩沖區滿或或遇到endl時才才向顯示器器輸出。397.2標標準輸輸出流(二)格式式輸出使用控制符符控制輸出出格式(查看P228表表7.3)cout<<dec<<a<<endl;例:(查看P228例例7.2))用流對象的的成員函數數控制輸出出格式(查看P229表表7.4)cout.width(10);例:(查看P230例例7.3))407.2標標準輸輸出流(三)用流流成員函數數put輸輸出字符put:專門用于輸輸出單個字字符的成員員函數。例如:cout.put(a);可以在一個個語句中連連續調用put函數數。例:(查看P232例例7.4))putchar函數數,C語言言中使用的的,也能輸輸出一個字字符。在stdio.h頭文文件中定義義。41第7章輸輸入輸出流流7.1C++的的輸入和輸輸出7.2標標準輸出出流7.3標標準輸入入流7.4文文件操作作與文件流流7.5字字符串流427.3標標準輸入流流(一)cin流cin是istream類的對象象,它從標準輸輸入設備(鍵鍵盤)獲取數數據,程序中中的變量通過過流提取符“>>”從流中提取數數據。流提取符“>>”從流中中提取數據時時通常跳過輸輸入流中的空格、Tab鍵、換行符符等空白字符。只有輸入完數據再再按回車健后后,該行數據才才被送入鍵盤盤緩沖區,形形成輸入流,,流提取符““>>”才能能從中提取數數據。43(一)cin流(補充充)Cin有自己己狀態值,錯錯誤時為0例Inta;cin>>a;//a=ssdlk處理:cin.clear();//清除除錯誤標志cin.sync();//清空緩緩存447.3標標準輸入流流(二)用于字字符輸入的流流成員函數用get函數數讀入一個字字符。get函數有有三種形式:cin.get()cin.get(字符變量)作用:將讀入字符賦賦值給指定的的字符變量。。cin.get(字符數組,字字符個數n,,終止字符)作用:從輸入流中讀讀取n-1個個字符,賦給給指定的字符符數組。如果果在讀取n-1個字符前前遇到終止字字符,則提前前結束讀取。。457.3標標準輸入流流(二)用于字字符輸入的流流成員函數用get函數數的例題://第一種形形式:#include<iostream>usingnamespacestd;intmain(){charc;cout<<"enterasentence:"<<endl;while((c=cin.get())!=EOF)//輸入ctrl+z結束cout.put(c);return0;}467.3標標準輸入流流(二)用于字字符輸入的流流成員函數用get函數數的例題://第二種形形式:#include<iostream>usingnamespacestd

溫馨提示

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

評論

0/150

提交評論