讀書筆記 C 檔案操作

2021-04-12 19:33:34 字數 2301 閱讀 9634

在c++中,對檔案的操作是通過stream的子類fstream(file stream)來實現的,在標頭檔案中定義

一、開啟檔案

fstream類的成員函式open(),原形:void open(const char *filename,int mode,int access)

filename:開啟的檔案名字            mode:開啟檔案的方式              access:開啟檔案的屬性

開啟檔案的屬性:

0:普通檔案,開啟訪問                 1:唯讀檔案

2:隱藏檔案                           4:系統檔案

可以用「或(|)」或者「+」把以上屬性連線起來

如果open函式只有檔名---乙個引數,則以讀/寫普通檔案開啟

例:file1.open("c://config.sys");<*****=>file1.open("c://config.sys",in|out,0);

二、關閉檔案

fstream提供成員函式close()來操作

三、讀寫操作

1、file2<< "i love you";   //向檔案寫入字串「i love you」

int i;

file2>>i;               //從檔案讀出乙個整數值i

2、二進位制檔案的讀寫

(1) put()

put()函式向流寫入乙個字元。原形為ofstream &put(char ch);

file1.put('c');就是向流寫乙個字元'c'

(2) get()

get()函式有三種過載形式:

第一種:ifstream &get(char &ch):從流中讀取乙個字元,結果儲存在引用ch中。如果到檔案            尾則返回空字元

第二種:file2.get(x);表示從檔案中讀取乙個字元,儲存在x中。達到檔案尾則返回eof

第三種:ifstream &get(char *buf,int num,char delim='/n'); 把字元讀入由buf指向的數            組,直到讀入num個字元或遇到由delim指定的字元。如果沒有delim這個引數,就使用預設置            換行符'/n'

四、檔案定位

c++的檔案定位分為讀位置和寫位置的定位

seekg()設定讀位置             seekp()設定寫位置

istream &seekg(streamoff offset,seek_dir origin);

ostream &seekp(streamoff offset,seek_dir origin);

offset 偏移量            seek_dir 移動的基準位置

seek_dir是值為列舉型別:beg 檔案開頭;cur 當前位置;end 結尾

以上兩個函式一般用於二進位制檔案

file1.seekg(1234,cur);      //把檔案的讀指標從當前位置後移1234個位元組

ifstream input;

vector::const_iterator iter=files.begin();

while( iter!=files.end() )

while( input>>s )

input.close();

input.clear();          //開啟已存在的流物件,必須在每次偏移迴圈時關閉和清空

++iter;

}          

每個io類定義了三個iostate型別的常量值,分別表示特定的位模式:

badbit標誌著系統級的故障,如無法恢復的讀寫錯誤

failbit標誌著希望獲得數值型資料而輸入了字元,這種導致設定failbit的問題通常可以修正

eofbit標誌著遇到檔案結束符,此時同時還設定了failbit

流的狀態由bad、fail、eof和good操作揭示。clear和setstate操作用於改變條件成員狀態

int ival;

//read cin and test only for eof;loopis executed even if there are other io failures

while( cin>>ival,cin.eof() )   //先讀取,然後返回是否到達檔案結束

if( cin.fail() )

}輸入緩衝區的重新整理:

cout<< "hi"

檔案目錄操作 cookbook讀書筆記

使用os.path 模組中的函式來完成多數操作 使用os.path 來進行檔案測試是很簡單的。在寫這些指令碼時,可能唯一需要注意的就是你需要考慮檔案許可權的問題,特別是在獲取元資料時候 import os path users beazley data data.csv get the last c...

C 讀書筆記

1.內建函式 inline必須在呼叫前進行完整定義,語 define相同,但是消除了不安全性 例 inline float circle float r 2,函式原型 語法形式 返回型別 函式名 參數列 1 函式原型的參數列中不包含引數的名字,而只包含型別 2 函式定義由函式說明部分和函式體構成 3...

C 讀書筆記

c陷阱和缺陷 1.賦值符優先順序比邏輯比較低,賦值表示式的結果為賦值後的結果 2.編譯器掃瞄符號使用貪心法,盡量選擇最長字元的符號串,如a 理解為a 而不是a 3.為相容老版本編譯器,不同符號之間最好加空格,如a 1可能理解為a 1,應該改為a 1 4.老版本編譯器,8進製數以0開始,後面可以加超過...