C C 開啟檔案儲存資料的各種方式

2021-07-29 23:31:17 字數 3568 閱讀 8670

開啟檔案

檔名

filebuf::openprot;   //預設的相容共享方式

filebuf::sh_none;    //獨佔,不共享

filebuf::sh_read;    //讀共享

filebuf::sh_write;   //寫共享

開啟檔案的方法

呼叫建構函式時指定檔名和開啟模式

ifstream f(「d:\12.txt」,ios::nocreate);         //預設以 ios::in 的方式開啟檔案,檔案不存在時操作失敗

ofstream f(「d:\12.txt」);                //預設以 ios::out的方式開啟檔案

fstream f(「d:\12.dat」,ios::in|ios::out|ios::binary); //以讀寫方式開啟二進位制檔案

使用open成員函式

fstream f;

f.open(「d:\12.txt」,ios::out);             //利用同一物件對多個檔案進行操作時要用到open函式

檢查是否成功開啟

成功:

if(f)       //對ifstream、ofstream物件可用,fstream物件不可用。

if(f.good())

失敗:

if(!f)       // !運算子已經過載

if(f.fail())

讀寫操作

使用<>運算子

只能進行文字檔案的讀寫操作,用於二進位制檔案可能會產生錯誤。

使用函式成員 get、put、read、write等

經常和read配合使用的函式是gcount(),用來獲得實際讀取的位元組數。

讀寫二進位制檔案注意事項

開啟方式中必須指定ios::binary,否則讀寫會出錯

用read\write進行讀寫操作,而不能使用插入、提取運算子進行操作,否則會出錯。

使用eof()函式檢測檔案是否讀結束,使用gcount()獲得實際讀取的位元組數

關閉檔案

使用成員函式close,如:

f.close(); 

利用析構函式

物件生命期結束時會檢查檔案是否關閉,對沒有關閉的檔案進行關閉操作。

隨機讀寫檔案

通過移動檔案讀寫指標,可在檔案指定位置進行讀寫。

seekg(絕對位置);      //絕對移動,    //輸入流操作

seekg(相對位置,參照位置);  //相對操作

tellg();          //返回當前指標位置

seekp(絕對位置);      //絕對移動,    //輸出流操作

seekp(相對位置,參照位置);  //相對操作   

tellp();          //返回當前指標位置

參照位置:

ios::beg  = 0       //相對於檔案頭

ios::cur  = 1       //相對於當前位置

ios::end  = 2       //相對於檔案尾

1.直接流輸出兩個字串

#include 

#include

using namespace std;

int main()

return

0;}

程式輸出的檔案:

2.整數資料的輸入

#include 

#include

using namespace std;

int main()

out<< endl;}}

out.close();

return

0;}

程式輸出:

3.字元資料的輸入

字元的輸出方式以put(ch)為存入語句,讀取語句為get(ch)

#include 

#include

using

namespace

std;

int main()

out.close();

return

0;}

程式輸出:

1.檔案使用方式

檔案使用方式        意 義

「rt」      唯讀開啟乙個文字檔案,只允許讀資料

「wt」      只寫開啟或建立乙個文字檔案,只允許寫資料

「at」      追加開啟乙個文字檔案,並在檔案末尾寫資料

「rb」      唯讀開啟乙個二進位制檔案,只允許讀資料

「wb」       只寫開啟或建立乙個二進位制檔案,只允許寫資料

「ab」       追加開啟乙個二進位制檔案,並在檔案末尾寫資料

「rt+」      讀寫開啟乙個文字檔案,允許讀和寫

「wt+」      讀寫開啟或建立乙個文字檔案,允許讀寫

「at+」      讀寫開啟乙個文字檔案,允許讀,或在檔案末追加數 據

「rb+」      讀寫開啟乙個二進位制檔案,允許讀和寫

「wb+」      讀寫開啟或建立乙個二進位制檔案,允許讀和寫

「ab+」      讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料

從鍵盤輸入幾行字元,寫入乙個檔案

#include 

#include

using

namespace

std;

int main()

printf("input some strings:\n");

ch = getchar();

while (ch != eof)

printf("\n");

fclose(fp);

return

0;}

程式輸入:i like c++

**** c++

code c++

ctrl+z

程式輸出:

With open函式開啟檔案的各種方式

with open path file type encoding,as f f.read size f.write content type info r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔...

java獲取路徑的各種方式

利用system.getproperty 函式獲取當前路徑 system.out.println system.getproperty user.dir 指定了當前的路徑使用file提供的函式獲取當前路徑 file directory newfile 設定為當前資料夾 trycatch except...

Numpy 拼接陣列的各種方式

總結 import numpy as np a np.array 1,2,3 b np.array 5,6,7 拼接乙個陣列和數值 array 1,2,3,4 拼接兩個陣列 array 1,2,3,5,6,7 拼接列表成為陣列 array 1,2,3,4,5,6,7,8,9 不同座標軸方向的拼接 a...