關於C 中的檔案操作

2021-10-10 14:05:57 字數 2817 閱讀 4540

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

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

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

檔案型別分為兩種:

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

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

操作檔案的三大類:

ofstream:寫操作

ifstream: 讀操作

fstream : 讀寫操作

5.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 

void

test01()

intmain()

總結:

5.1.2讀檔案

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

讀檔案步驟如下:

包含標頭檔案

#include

建立流物件

ifstream ifs;

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

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

讀資料四種方式讀取

關閉檔案

ifs.close();

示例:

#include 

#include

void

test01()

//第一種方式

//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)

ifs.

close()

;}intmain()

總結:

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

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

5.2.1 寫檔案

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

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

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

示例:

#include 

#include

class

person

;//二進位制檔案 寫檔案

void

test01()

;//4、寫檔案

ofs.

write((

const

char*)

&p,sizeof

(p))

;//5、關閉檔案

ofs.

close()

;}intmain()

總結:

5.2.2 讀檔案

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

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

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

示例:

#include 

#include

class

person

;void

test01()

person p;

ifs.

read((

char*)

&p,sizeof

(p))

; cout <

<

"姓名: "

<

< p.m_name <

<

" 年齡: "

<

< p.m_age <

< endl;

}int

main()

檔案輸入流物件 可以通過read函式,以二進位制方式讀資料

關於c 中txt檔案的讀取操作

txt文件如下 小明 1 00000001 13900000001 小強 2 00000002 13900000002 在listctrl中顯示程式如下 string strtemp cstring name,lev,id,phone int nrow 0 char str2 100 ifstrea...

Java中關於檔案的操作

一開啟檔案 file f new file d aa.txt 這一般是乙個絕對的位址,一般在同乙個檔案中。檔案類的一些方法 f.delete 刪除file f.exists file是否存在 f.getname 得到file名字 f.isdirectory file是否是資料夾 f.isfile f...

關於C語言檔案的操作

關於c語言的檔案操作之前我也寫過一篇部落格來介紹,但是當時寫的很不全面,只是簡單的使用了一下 今天再從新學習一下。1 檔案的寫 首先還是先看乙個簡單的例子 includeint main printf input a string n while ch getchar n fclose fp ret...