以前對陣列物件的讀寫總是崩潰,或者亂碼,今天聽老師講了c++檔案讀寫後,特意做點部落格
記錄下來,今天收穫最大的就是物件陣列的讀寫了
#include
#include
//萬能標頭檔案,不想費勁地包含標頭檔案
using
namespace std;
struct tt(
int _data,
const
char
* des)
:data
(_data)
friend ostream&
operator
<<
(ostream& os,
const t& o)};
intmain()
;for
(int i=
0;i<
3;i++
)//按塊的方式把物件寫到檔案裡面
out.
write
(reinterpret_cast
<
char
*>
(&t[i]),
sizeof
(t))
;//第乙個引數必須強轉為char*,第二個引數提供讀取乙個物件的位元組數,位元組數對了才能保證資料正確讀寫
} t t[3]
;//先用預設初始化data為0,字元陣列內容置為"null"
ifstream in
("c:\\users\\axin\\desktop\\a.data"
,ios::in)
;//"r"方式讀取
for(
int i =
0; i <3&&
!in.
eof(
); i++
)return0;
}
下面的內容基本都是照抄的了,供自己複習期末考的?
文字檔案和二進位制檔案的區別
c++檔案預設的輸出是文字方式
文字檔案是把字元轉換成ascii碼儲存
二進位制檔案是把字元轉換成為01等二進位制數來儲存
read和write函式是按塊進行讀寫的函式,程式設計方便,但是要注意的一點是:如果你把乙個含有string成員的物件寫入到檔案中,就會導致程式崩潰,因此建議把string換成char存字元
ofstream out_1;
//預設建構函式,開啟檔案需要用open函式,預設就是w方式寫檔案
ofstream out_2
("d:\\a.txt");
//含路徑的建構函式,預設第二個引數是w方式寫檔案
ofstream out_3
("d:\\b.txt"
,ios::out)
;//含路徑的建構函式,顯式指定w方式寫檔案
if(out_3)
out_1.
close()
;//記得關閉檔案
C 物件陣列
delete p 加上能銷毀所有的元素,如果不加只銷毀第乙個元素 其實就是呼叫了p中的析構函式 coornidate.h includeusing namespace std class coornidate coornidate.cpp include include coordinate.h u...
C 物件陣列
c 中的物件陣列為我們提供了同時例項化多個相同物件的功能,避免我們多次進行例項化相同的物件。例如表示多維圖形時的座標等。宣告時的方法與例項化單個物件類似。下面以乙個二維三角形為例 class coordinate 這裡就不做封裝了 棧區 void main 堆區 int main 在堆區中,一定要以...
C 物件陣列
物件陣列 物件陣列 每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把這 一系列的物件用乙個陣列來存放。對應陣列元素是物件,不僅具有的資料成員,而且還有函式 成員。定義乙個一維陣列的格式如 類名 陣列名 下標表示式 使用物件陣列時只能訪問單個陣列元素,其一般格式如 陣列名 下標 成...