2. 讀檔案
2. 二進位制檔案
程式執行時產生得資料都屬於臨時資料,程式一旦執行結束都會被釋放
而通過檔案可以將資料持久化
c++中對檔案操作需要包含標頭檔案
檔案型別分為兩種:
二進位制檔案:檔案以二進位制形式儲存在計算機中,使用者一般不能直接讀懂它們
操作檔案得三大類:
ofstream
:寫操作
ifstream
:讀操作
fstream
:讀寫操作
寫檔案步驟如下
包含標頭檔案:#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
intmain()
讀檔案步驟如下
包含標頭檔案:#include
建立流物件:ifstream ifs;
開啟檔案 並判斷是否開啟成功:ifs.open("路徑",開啟方式);
讀資料:四種方式讀取
關閉檔案:ifs.close();
if
(!ifs.
is_open()
)
4種讀取方式
例:
#include
using
namespace std;
#include
//新增標頭檔案
#include
intmain()
//讀取檔案
//方式一
/* 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
// */
//關閉檔案
ifs.
close()
;system
("pause");
return0;
}
以二進位制的方式對檔案進行讀寫操作
開啟方式要指定為ios::binary
二進位制方式寫檔案主要利用流物件呼叫成員函式write
函式原型:ostream& write(const char* buffer,int len);
引數解釋:
二進位制方式讀檔案主要利用流物件呼叫成員函式read
函式原型:istream& read(char* buffer,int len);
引數解釋:
#include
using
namespace std;
//新增標頭檔案
#include
class
person
;//二進位制寫入檔案
void
test01()
; ofstream ofs
("person.txt"
,ios::binary |ios::out);
ofs.
write((
const
char*)
&person,
sizeof
(person));
ofs.
close()
;}//二進位制讀取檔案
void
test02()
person person;
ifs.
read((
char*)
&person,
sizeof
(person));
cout <<
"姓名: "
<< person.m_name
"年齡: "
<< person.m_age
"性別: "
<< person.m_***
close()
;}intmain()
c 相關知識點
類繼承 基類指標與引用可以隱示的指向派生類的物件,但只能使用基類的函式。多型屬於豎向函式過載,派生類函式的名與基類函式得名一樣,但在呼叫多態函式時有些區別,如果該函式是通過引用或者指標而不是物件呼叫的,如果這個函式在多型過程中沒有使用關鍵字virtual那麼程式將根據引用或者指標選擇實現方法。如果函...
C 繼承相關知識點
c 作為物件導向的語言,類之間可以繼承,被繼承的類稱為基類 父類 產生的新類稱為派生類 子類 c 的類許可權分為三個等級,private 私有的 protect 被保護的 public 公有的 其相對應的繼承的許可權也分為相同的三個等級,即private,protect以及public繼承。這三類繼...
c 的相關知識點
第乙個 輸入資料的每行包括若干個 至少乙個 以空格隔開的整數,輸出每行所有的整數和。include include include include include include include include include include includeusing namespace std i...