我正在寫一個陣列自動對焦結構(因素是結構)二進制文件是這樣的:如何將結構數組寫入二進制文件並再次讀取?
factor factors[100];
ofstream fa("Desktop:\\fa.dat", ios::out | ios::binary);
fa.write(reinterpret_cast<const char*>(&factors),sizeof(factors));
fa.close();
我運行該程序,並保存5個記錄它,在另一個文件,我想讀結構,所以我寫了這個:
int i=0;
ifstream a("Desktop:\\fa.dat", ios::in | ios::binary);
factor undelivered_Factors[100];
while(a && !a.eof()){
a.read(reinterpret_cast<char*>(&undelivered_Factors),sizeof(undelivered_Factors));
cout<<undelivered_Factors[i].ID<<"\t"<<undelivered_Factors[i].total_price<<endl;
i++;
}
a.close();
但在array.why閱讀和打印保存的因素,它精心讀取並顯示他們的冷杉2後,我應該怎麼辦? ofstream的的
http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – Steephen
儘量只調用'閱讀() '一次。 –