C 中的檔案操作

2021-10-05 10:08:15 字數 2746 閱讀 1342

需要用到 c++ 中另乙個標準庫fstream

資料型別

描述ofstream

該資料型別表示輸出檔案流,用於建立檔案並向檔案寫入資訊。

ifstream

該資料型別表示輸入檔案流,用於從檔案讀取資訊。

fstream

該資料型別通常表示檔案流,且同時具有 ofstream 和 ifstream 兩種功能,這意味著它可以建立檔案,向檔案寫入資訊,從檔案讀取資訊。

模式標誌

描述追加模式。所有寫入都追加到檔案末尾。

ios::ate

檔案開啟後定位到檔案末尾。

ios::in

開啟檔案用於讀取。

ios::out

開啟檔案用於寫入。

ios::trunc

如果該檔案已經存在,則先刪除該檔案

ios::binary

二進位制方式

從鍵盤輸入的字元儲存到緩衝區

從檔案讀取的資料也儲存在緩衝區

然後呼叫命令輸出到終端上

平常說的輸入輸出,都是指緩衝區的輸入輸出,緩衝區是主體

tellg() 和 tellp()

這兩個成員函式不用傳入引數,返回pos_type 型別的值(根據ansi-c++ 標準) ,就是乙個整數(long型別),代表當前get 流指標的位置 或 put 流指標的位置,所謂位置其實就是距離檔案開頭的位元組數

seekg() 和seekp()

這對函式分別用來改變流指標get 和put的位置。

seekg ( off_type offset, seekdir direction );

seekp ( off_type offset, seekdir direction );

ios::beg(預設的,從流的開頭開始定位),

ios::cur(從流的當前位置開始定位),

ios::end(從流的末尾開始定位)。

// 定位到 fileobject 的第 n 個位元組(假設是 ios::beg)

fileobject.seekg( n );

// 把檔案的讀指標從 fileobject 當前位置向後移 n 個位元組

fileobject.seekg( n, ios::cur );

// 把檔案的讀指標從 fileobject 末尾往回移 n 個位元組

fileobject.seekg( n, ios::end );

// 定位到 fileobject 的末尾

fileobject.seekg( 0, ios::end );

bad()fail()eof()good()

要想重置以上成員函式所檢查的狀態標誌,你可以使用成員函式clear(),沒有引數。

getline()

在庫中的getline()函式有兩種過載形式:

作用是: 從istream中讀取至多n個字元(包含結束標記符)儲存在s對應的陣列中。即使還沒讀夠n個字元,

如果遇到delim 或 字數達到限制,則讀取終止,delim都不會被儲存進s對應的陣列中。

二進位制檔案則使用下面成員函式write ( char * buffer, streamsize size );

read ( char * buffer, streamsize size );

這裡 buffer 是一塊記憶體的位址,用來儲存或讀出資料。引數size 是乙個整數值(byte),表示要從快取(buffer)中讀出或寫入的字元數

清空緩衝區

cin.sync();                     //全部清空

cin.ignore(int , char );  //int形參表示最多刪除多少位元組,char形參表示遇到什麼字元中斷操作

(1)開啟檔案

ofstream outfile;    //建立檔案物件

outfile.open("file.dat", ios::out | ios::trunc ); | 表示多種模式結合

ofstream 《檔案物件》("檔名",模式);      //以輸出方式建立檔案物件 ,會自動關聯到檔名
(2)關閉檔案

《檔案物件》.close();
(3)寫入檔案

《檔案物件》 << "this is a line.\n";

《檔案物件》 << "this is another line.\n";

(4)讀取檔案

while (!《檔案物件》.eof())    //以行為單位進行迴圈

(5)二進位制檔案讀寫

int main ()
參考:

C 中的檔案操作

c 建立目錄 建立目錄c sixage directoryinfo d directory.createdirectory c sixage d1指向c sixage sixage1 directoryinfo d1 d.createsubdirectory sixage1 d2指向c sixage...

C 中的檔案操作

在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器,所以,cout write stdout n 就表示把字串 wr...

C 中的檔案操作

在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器,所以,cout write stdout n 就表示把字串 wr...