با سلام
من وقتی تو یه فایل که بدین گونه باز شده :
fp=fopen("test.dat","wb
وقتی میخایم یه استراکچر رو توش ذخیره کنم
همیشه یه رکورد رو برنامه خودش اضافه میکنه
که مقدارش صفر است
چطور جلوی این کار رو بگیریم
با تشکر
Printable View
با سلام
من وقتی تو یه فایل که بدین گونه باز شده :
fp=fopen("test.dat","wb
وقتی میخایم یه استراکچر رو توش ذخیره کنم
همیشه یه رکورد رو برنامه خودش اضافه میکنه
که مقدارش صفر است
چطور جلوی این کار رو بگیریم
با تشکر
اون قسمت از کد برنامه ات که استراکچر رو اضافه میکنه بزار تا بشه نظر داد.
[code]
#define maxsize 10
int con=0; //This is our counter for last structure node number
struct student
{
char name[20];
int grade[5];
}std[maxsize];
void save()
{
FILE *fp;
int i;
fp=fopen("test.dat","wb");
for(i=0;i<con;i++)
{
fwrite(&std[i],sizeof(struct student),1,fp);
}
clrscr();
gotoxy(25,10);
printf("Saved Successfuly");
fclose(fp);
getch();
}
[code/]
من که خطای خاصی نمیبینم.
ولی خیلی احتمالات میشه داد.
اگه کل برنامه رو بزاری بهتر میشه نظر داد.
البته اگه مایل بودی.
موفق باشید
فکر نکنم نیاز به کل برنامه باشه
چون که فقط تو این تابع و یه تابع دیگه با فایل کار میشه !
[code]
void load()
{
int i;
FILE *fp;
fp=fopen("test.dat","rb");
while(!feof(fp))
{
fread(&std[con],sizeof(struct student),1,fp);
con++;
}
gotoxy(30,26);
printf("Load Is Complete");
fclose(fp);
getch();
}
[/code[
سلام.نقل قول:
نوشته شده توسط SIR_asad
اول یک سوال.
این یک رکورد اضافی آخر فایله یا اولش.
بعدشم توی این کد شما con رو صفر کردید و دیگر مقدار ندادید و بعد در شرط حلقه ازش استفاده کردید. چرا؟
درسته که فقط این دو روال به فایل دسترسی دارن ولی نحوه استفاده از این روال ها هم مهمه.نقل قول:
فکر نکنم نیاز به کل برنامه باشه
چون که فقط تو این تابع و یه تابع دیگه با فایل کار میشه !
باید کل برنامه رو دید تا بشه نظر داد.نقل قول:
بعدشم توی این کد شما con رو صفر کردید و دیگر مقدار ندادید و بعد در شرط حلقه ازش استفاده کردید. چرا؟
البته اگه Security برنامه در حدی باشه که بشه سورسش رو منتشر کرد !!!
موافقم !!!نقل قول:
باید کل برنامه رو دید تا بشه نظر داد.
البته اگه Security برنامه در حدی باشه که بشه سورسش رو منتشر کرد !!!