PDA

View Full Version : سوال: فایل باینری



H.Shahab.S
یک شنبه 02 تیر 1387, 23:41 عصر
چرا در قطعه کد زیر دو بار رکورد آخرتو فایل چاپ می شه؟




#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream f;
f.open("file.dat",ios::in|ios::out|ios::binary);
int i=12;
f.write((char*)&i,sizeof(int));
f.close();
f.open("file.dat",ios::in|ios::out|ios::binary);
while(!f.eof())
{
f.read((char*)&i,sizeof(int));
cout<<i;
}
return 0;
}

vahid.bz
پنج شنبه 27 فروردین 1388, 19:25 عصر
سلام دوست عزیز
به نظرم اتفاقی که باعث شده دوبار رکورد در فایل نوشته شود مربوط به کد نیست.شاید ماجرای زیر اتفاق افتاده باشد :
1.شما یک بار برنامه را اجرا کرده و رکورد یک بار در فایل نوشته شده است
2.شما دوباره کد را اجرا کرده و احتمالاٌ برنامه به صورت پیش فرض در مد ios::app بوده که باعث می شود رکورد در ادامه ی نوشته های داخل فایل نوشته شود و با این وضعیت دو بار رکورد در فایل نوشته شده است.