C 物件陣列的讀寫

2021-10-25 18:04:39 字數 1550 閱讀 8725

以前對陣列物件的讀寫總是崩潰,或者亂碼,今天聽老師講了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 物件陣列

物件陣列 物件陣列 每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把這 一系列的物件用乙個陣列來存放。對應陣列元素是物件,不僅具有的資料成員,而且還有函式 成員。定義乙個一維陣列的格式如 類名 陣列名 下標表示式 使用物件陣列時只能訪問單個陣列元素,其一般格式如 陣列名 下標 成...