#包含?& ltiostream & gt//控制臺頭文件
#包含?& ltstring.h & gt//字符串操作頭文件
班級?Stu//定義學生類?
{private:// private成員關鍵字?
夏爾?名稱[16];?//名字?
intYear?//年齡?
布爾?性;//性別(真為男,假為女)?
公:?//公共成員關鍵字?
Stu()//無參數構造函數
{strcpy(Name," none ");?//名稱為空?
年份= 0;//年齡為0?
性=假;}//性別是假?
斯圖(夏爾?*N,int?波爾。S)//參數構造函數
{strcpy(Name,N);//名字是參數n?
年份= Y;//年齡是參數y?
性= S;}//性別是參數s?
int?Put()//輸出函數
{printf("姓名:%s,年齡:%d,性別:%s\n ",姓名,年份,性別?“男”:“女”);}
/*哪裏(性?“男”:“女”)是三眼表達式,意思是性為真則輸出男,為假則輸出女*/
};
int?main()?//主函數?
{斯圖?N[4],?//定義學生類數組(默認用無參數構造函數初始化)?
S[4]={Stu("張三",16,true),//定義學生類數組,並通過參數構造函數初始化。
斯圖("李四",17,假的),?//第二個學生信息?
Stu("王五",18,真),//第三個學生信息?
斯圖("劉釗",19,真)};?//第四個學生信息?
int?我;//循環變量I
文件?* fp?//文件指針fp
printf(" n數組中的學生信息:\ n ");
for(I = 0;我& lt4;i++)?N[i]。put();//逐個輸出N個數組的學生信息。
Printf(學生信息在“\ns數組:\ n”)中;
for(I = 0;我& lt4;i++)?S[i]。put();//逐個輸出S數組的學生信息。
fp=fopen("student.dat "," ab ");?//通過追加打開文件(二進制模式)
fwrite(S,sizeof(Stu),4,FP);?//將第壹個地址為s的數組的四個元素寫入文件。
fclose(FP);?//關閉文件
fp=fopen("student.dat "," Rb ");?//以只讀方式打開文件(二進制)
fread(N,sizeof(Stu),4,FP);//將文件中的四條Stu記錄讀入N數組。
fclose(FP);?//關閉文件
/*Stu類的成員變量是私有的,所以不能直接賦值,但是讀取文件時不受影響*/
printf(" \ n新n數組中的學生信息:\ n ");
for(I = 0;我& lt4;i++)?N[i]。put();//逐個輸出新N個數組的學生信息。
/*通過輸出壹個新的n數組,可以驗證從文件中訪問數組是否成功*/
系統(“暫停”);//執行DOS命令暫停屏幕,這樣可以看到顯示的結果?
回歸?0;?//結束程序
}運行結果如下: