1、3種檔案流:fstream、ifstream、ofstream。其都定義在fstream.h。
2、建立流:
fstream both;
ifstream in ;
ofstream out;
3、開啟流:void open(const unsigned char *,int mode,int access=filebuf::openprot)
第乙個引數為檔名,如"c:"。第二個引數mode由以下幾種:
ios::in //用於讀取檔案,檔案必須存在。
ios::out //用於輸出。
ios::binary //以二進位制方式開啟檔案,預設時是以文字。
ios::nocreat //檔案不存在將報錯,預設時不會報錯。
ios::noreplace //檔案存在報錯。
ios::ate //查詢檔案
ios::trunc //檔案存在,則原同名檔案被刪除
第三個引數access有幾種:0 普通檔案 ,1 唯讀檔案 ,2 隱含檔案 ,4 系統檔案,8 備份檔案 。
注意:開啟ifstream流預設為ios::in,0;ofstream流預設為ios::out,0。除了用open開啟,還可以使用建構函式開啟,如
ofstream out("c:");
if(!out);//開啟失敗檢測處理
4、關閉:out.close();
5、檔案讀寫:如out<<" "<<123<<"file";//寫 123file到檔案上
char str[80];
in>>str;//讀到str陣列中
6、二進位制檔案的讀寫:
6.1、
ifstream &get(char &ch);//讀入乙個字元到ch位址中
ofstream &put(char ch);//將ch寫入流中並返回流
6.2、
ifstream &read(unsigned char *buf,int num);//從流讀出num位元組到buf指向的緩衝區,注意*buf的型別,常用到強制轉換(unsigned char *)
ofstream &write(const unsigend char *buf, int num);//把num位元組的buf中的資料寫入到流
//例子:
int i;
in.read((unsigned char *)&i,sizeof(int));
int j=1234;
out.write((const char *) &j,sizeof(int));
//結構型別讀寫
struct atypr;
struct atypr a;
out.write((const char *)&a,sizeof(struct stypr));
in.read((char*)&a,sizeof(struct atypr));
7、檢測檔案結束:三種方法:
//法一
if(!in.eof())
//法2
if(!in){}//檢測該流物件是否為零
//法3
while(in.get(c))
{
cout< C 檔案輸入輸出
檔案輸入輸出 1 directory info 和file info 型別 directory和file通過靜態成員實現操作,擴充套件了system.object。返回強型別物件。directoryinfo和fileinfo通過例項級方法實現 必須使用new關鍵字分配它們 從filesystemin...
C 檔案輸入輸出
儲存在變數,陣列,物件中的資料都是暫時性的,當程式退出以後就會丟失,為了永久性儲存程式中有用資料,需要將資料以檔案形式儲存於磁碟或者光碟等物理介質。c 檔案主要是兩種 文字檔案和二進位制檔案 例如c 源程式是儲存在文字檔案,而最後的可執行程式是二進位制檔案。當然計算機本身是不區分二進位制檔案和文字的...
C 檔案輸入輸出
1 文字檔案的讀寫 文字檔案的讀寫,可以使用類似cin,cout方式,此外還有getline,get,二進位制檔案讀寫方式read,write經測試也可以使用 include include int main char buffer 256 注意使用getline讀至buffer,需新增 0 whi...