資源描述:
《《文件流和內(nèi)存流》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第14章文件流和內(nèi)存流14.1文件及文件流的基本概念文件:程序+數(shù)據(jù)+文檔,外部設備的總稱(aaa.cnullprncon)14.1.1輸入和輸出內(nèi)存向外存:輸出、寫、存外存向內(nèi)存:輸入、讀、取14.1.2文件的存儲方式ASCII碼:1024=49485052=01001001010010000101000001010010二進制存儲方式:1024=0000010000000000文件流:專門用于磁盤文件I/O的流類(專門用于磁盤文件I/O的類)。14.1.3文件流類體系類filebuf用于管理文件的
2、緩沖區(qū)。類fstreambase提供了I/O所需要的所有成員函數(shù)。類ifstream用于從文件中?。╥)數(shù)據(jù)。類ofstream用于向文件輸出(o)數(shù)據(jù)。類fstream用于文件的雙向數(shù)據(jù)傳遞I/O)。以上類的派生(產(chǎn)生)方法參看305頁。14.2文件的打開與關閉14.2.1文件的打開C++在文件流類中提供了4個文件的成員函數(shù):voidfstreambase::open(char*,int,int=filebuf::openprot)voidifstream::open(char*,int=ios::
3、in,int)voidofstream::open(char*,int=ios::out,int)voidfstream::open(char*,int,int)說明:第一個參數(shù)是文件名,第二個參數(shù)是訪問方式,第三個參數(shù)是保護方式。在所有文件流的基類ios中,可以使用下列打開模式的公有枚舉成員:in0x01輸入out0x02輸出ate0x04將指針置于文件未app0x08追加binary0x80打開二進制文件一般情況,將幾種模式組合使用。更多的成員參考306頁。例:打開一個文件result文件ifst
4、reaminfile;infile.open(“result”);等價于:infile.open(“result”,ios::in);//打開輸入文件infile.open(“result”,ios::in
5、ios::binary);//打開二進制輸入文件說明:對于類ifstream的對象,打開文件時默認模式in。對于類ofstream的對象,打開文件時默認模式out。C++在文件類中提供的4個文件流類中同時重載一個帶缺省參數(shù)的構造函數(shù):voidfstreambase::fstreambase(cha
6、r*,int,int=filebuf::openprot)voidifstream::ifstream(char*,int=ios::out,int)voidofstream::ofstream(char*,int=ios::in,int)voidfstream::fstream(char*,int,int)定義對象時,同時也打開了一個文件。4.若文件打開出錯,則返回一個NULL值。因此常常用下列格式提示出錯:ifstreaminfile;infile.open(“result”);if(!infil
7、e){cour(“cannotopenthisfile”);exit(1);}其中,exit(1)為返回編輯狀態(tài),1可省。14.2.2文件的關閉ifstreaminfile;infile.open(“result”);if(!infile){cour(“cannotopenthisfile”);exit(1);}infile.close();14.3文件的讀寫使用兩個讀寫運算符:<<和>>例14-1:模擬DOS命令,將*.cpp再復制一份,新文件名為:*new.cpp算法:打開輸入文件打開輸入/輸出文
8、件文件復制文件關閉方法一:#include"fstream.h"#include"iostream.h"#include"stdlib.h"voidmain(intargc,char*argv[]){if(argc!=3){cout<<"inputerror"<9、treamoutfile(argv[2]);//定義對象并初始化,打開模式省if(!outfile){cout<<"Con'topentargeifile"<>ch)outfile<