程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放
通過檔案可以將資料持久化
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()
int main()
總結:
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();
}int main()
總結:
以二進位制的方式對檔案進行讀寫操作
開啟方式要指定為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();
}int main()
總結:
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()
C 核心程式設計 5 檔案操作
5.2 二進位制檔案 程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放 通過檔案可以將資料持久化 c 中對檔案操作需要包含標頭檔案 fstream 檔案型別分為兩種 文字檔案 檔案以文字的ascii碼形式儲存在計算機中 二進位制檔案 檔案以文字的二進位制形式儲存在計算機中,使用者一般不...
C 核心程式設計 5 檔案操作
5.1 文字檔案 程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放,通過檔案可以將資料持久化。c 中對檔案操作需要包含標頭檔案 檔案型別分為兩種 2 二進位制檔案 檔案以文字的二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們 操作檔案的三大類 1 ofstream 寫操作 2 i...
python 05 檔案操作
開啟檔案。引數 檔名,訪問模式 f open test.txt w 關閉檔案 f.close f open test.txt w 寫入資料 f.write hello world,i am here f.close 注意 f open test.txt r content f.read 5 prin...