00x1 概述
程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放。通過檔案可以實現資料持久化
c++中對檔案的操作需要包含標頭檔案
檔案型別分為兩種
二進位制檔案:檔案以二進位制形式儲存在計算機中
檔案操作分為三種
00x2 文字檔案
寫檔案包含標頭檔案:#include
建立流物件:ofstream ofs;
開啟檔案:ofs.open(「檔案路徑」,開啟方式)
寫資料:ofs << 「寫入的資料」;
關閉輸出流:ofs.close();
#include
ofstream ofs;
ofs.
open
("檔案位址"
,ios::out)
;ofs <<
"資料"
;ofs.
close()
;
開啟方式
解釋ios::in
讀ios::out
寫ios::ate
初始位置檔案尾
通知方式寫檔案
ios::trunc
如果檔案存在先刪除,再建立
ios::binary
二進位制方式
注意:檔案開啟方式可以配合使用,利用|操作符
如:ios::binary | ios::out
讀檔案包含標頭檔案:#include
建立流物件:ifstream ifs;
開啟檔案並判斷檔案是否開啟成功:ifs.open(「檔案路徑」,開啟方式)
讀資料:四種方式讀取
關閉檔案:ifs.close();
#include
#include
ifstream ifs;
ifs.
open
("a.txt"
, ios::in);if
(!ifs.
is_open()
)第一種方式:建立字元陣列並迴圈逐個讀入
//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)
////return 0;
00x3 二進位制檔案
寫檔案二進位制方式寫檔案主要是利用流物件呼叫成員函式write
函式原型:ofs.write(const char * buffer,int len);
包含標頭檔案:#include
建立流物件:ofstream ofs;
開啟檔案:ofs.open(「檔案路徑」,開啟方式)
寫資料:ofs.write(const char * buffer,int len);
關閉輸出流:ofs.close();
#include
class
person
;person p1 =
;ofstream ofs;
ofs.
open
("檔案路徑"
,ios::out | ios::binary)
ofs.
write((
const
char*)
&p,sizeof
(person));
//位址顯示轉換成const char *
ofs.
close()
;
讀檔案
二進位制方式讀檔案主要是利用流物件呼叫成員函式read
函式原型:ofs.read(char * buffer,int len);
#include
class
person
p;ifstream ifs;
ifs.
open
("檔案位址"
,ios::in | ios::binary)if(
!ifs.
is_open()
)ifs.
read((
char*)
&p,sizeof
(person));
ifs.
close()
;
C 核心程式設計 5 檔案操作
5.2 二進位制檔案 程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放 通過檔案可以將資料持久化 c 中對檔案操作需要包含標頭檔案 fstream 檔案型別分為兩種 文字檔案 檔案以文字的ascii碼形式儲存在計算機中 二進位制檔案 檔案以文字的二進位制形式儲存在計算機中,使用者一般不...
C 核心程式設計 5 檔案操作
5.1 文字檔案 程式執行時產生的資料都屬於臨時資料,程式一旦執行結束都會被釋放,通過檔案可以將資料持久化。c 中對檔案操作需要包含標頭檔案 檔案型別分為兩種 2 二進位制檔案 檔案以文字的二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們 操作檔案的三大類 1 ofstream 寫操作 2 i...
Qt5 檔案讀寫
讀寫檔案涉及到的幾個類 和 讀檔案函式 void readfile const qstring filename qtextstream提供一種讀寫文字文件邊界的介面 qtextstream outtext my file 將qtextstream與特定檔案關聯 qdebug outtext.rea...