c 學習筆記12 檔案操作

2021-10-06 13:20:06 字數 3413 閱讀 4726

程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放

通過檔案可以將資料持久化

c++中對檔案操作需要包含標頭檔案 < fstream >

檔案型別分為兩種:

文字檔案- 檔案以文字的ascii碼形式儲存在計算機中

二進位制檔案- 檔案以文字的二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們。

操作檔案的三大類:

ofstream:寫操作

ifstream: 讀操作

fstream : 讀寫操作

1.1寫檔案

寫檔案步驟如下:

包含標頭檔案

#include

建立流物件

ofstream ofs;

開啟檔案

ofs.open(「檔案路徑」,開啟方式);

寫資料ofs << 「寫入的資料」;

關閉檔案

ofs.close();

檔案開啟方式:

開啟方式

解釋ios::in

為讀檔案而開啟檔案

ios::out

為寫檔案而開啟檔案

ios::ate

初始位置:檔案尾

追加方式寫檔案

ios::trunc

如果檔案存在先刪除,再建立

ios::binary

二進位制方式

注意:檔案開啟方式可以配合使用,利用|操作符

**例如:**用二進位制方式寫檔案ios::binary | ios:: out

#include

using

namespace std;

#include

// 1. 包含標頭檔案

void

test02()

intmain()

總結:

讀檔案與寫檔案步驟相似,但是讀取方式相對於比較多

熟記第一種即可(好用便捷)。

char buf[

1024]=

;while

(ifs >> buf)

讀檔案步驟如下:

包含標頭檔案

#include

建立流物件

ifstream ifs;

開啟檔案並判斷檔案是否開啟成功

ifs.open(「檔案路徑」,開啟方式);

讀資料四種方式讀取

關閉檔案

ifs.close();

#include

using

namespace std;

#include

// 1. 包含標頭檔案

#include

void

test02()

//4. 讀資料(4種方法)

//第一種

char buf[

1024]=

;while

(ifs >> buf)

//第二種

char buf[

1024]=

;while

(ifs.

getline

(buf,

sizeof

(buf)))

// 第三種

string buf;

while

(getline

(ifs,buf)

)//第四種

char c;

while

((c=ifs.

get())

!=eof

)//eof: end of file

// 5. 關閉檔案

ifs.

close()

;}intmain()

總結:

以二進位制的方式對檔案進行讀寫操作

開啟方式要指定為 ios::binary

2.1 寫二進位制檔案

二進位制方式寫檔案主要利用流物件呼叫成員函式write

函式原型 :ostream& write(const char * buffer,int len);

引數解釋:字元指標buffer指向記憶體中一段儲存空間。len是讀寫的位元組數

#include

using

namespace std;

#include

// 1. 包含標頭檔案

#include

class

person

;void

test02()

; person p2 =

;//4. 寫資料

ofs.

write((

const

char*)

&p,sizeof

(p))

; ofs.

write((

const

char*)

&p2,

sizeof

(p2));

//5、關閉檔案

ofs.

close()

;}intmain()

總結:

2.2 讀二進位制檔案

二進位制方式讀檔案主要利用流物件呼叫成員函式read

函式原型:istream& read(char *buffer,int len);

引數解釋:字元指標buffer指向記憶體中一段儲存空間。len是讀寫的位元組數

#include

using

namespace std;

#include

// 1. 包含標頭檔案

#include

class

person

;void

test01()

person p;

ifs.

read((

char*)

&p,sizeof

(p))

; cout <<

"姓名: "

<< p.m_name <<

" 年齡: "

<< p.m_age << endl;

ifs.

close()

;}intmain()

總結:

12 檔案操作

可以採用如下兩種方法記錄多個相關 字串1.採用二維陣列 這種方法記錄相關字串會造成內容浪費 而且儲存區使用不夠靈活 2.採用指標陣列 這種方法記錄相關字串不會浪費記憶體而且 儲存區的使用比較靈活 記錄普通變數位址的指標叫一級指標 記錄一級指標變數位址的指標叫二級指標 二級指標可以和指標陣列 記錄第乙...

Shell學習(12)檔案操作

檔案操作 取得目錄內容 ls getconf arg max 判斷檔案是否存在 建立檔案 建立一般檔案 建立檔案 1 使用轉向輸出 text.txt 2 配合空命令 test.xtx 可以增加script移植性,有時候使用 檔案 會造成語法錯誤 3 建立隱藏檔案 test.txt 4 使用touch...

C基礎12 檔案操作

strstr 定義說的有點羞澀難懂。舉個例子就知道了。比如 char str2 cdef char str1 abcdefgh 則通過函式,將返回 strstr str1,str2 cdefgh 如果str1不包含有str2。char str2 cxef char str1 abcdefgh 則通過...