PDA

View Full Version : سوال: اشکال در کد ویرایش که از کتاب آقای جعر نژاد گرفتم



c_doost
دوشنبه 30 خرداد 1390, 18:57 عصر
void edit()
{
int num;
ifstream in("dic.dat",ios::in|ios::binary);
ofstream out("dic.dat",ios::out |ios::binary);


clrscr();
cout<<"please enter a id enword";
cin>>num;
while(in.read((char *)&translation,sizeof(struct translate)))
{
if(translation.id==num)
{
cout<<"enter a new a information";
cout<<"enword";
cin>>translation.enword;
cout<<"faword";
cin>>translation.faword;
}
out.write((char *)&translation,sizeof(struct translate));
} //endwile
in.close();
out.close();
remove("dic.dat");
rename("temp.dat","dic.dat");

getch();
}

سلام
این کد ویرایش یک رکورد در فایل را از کتاب آقای جعفر نژاد گرفتم ولی به دو خط


remove("dic.dat");
rename("temp.dat","dic.dat");

ایراد میگیره که کاملا عین کتاب نوشتم
لطفا کمک کنید
با تسکر

r00tkit
دوشنبه 30 خرداد 1390, 19:47 عصر
سلام من این کتاب رو نخوندم ولی شاید این تابع ها رو یه جای دیگه تعریف کرده و داره استفاده می کنه ، می تونی از MoveFile و DeleteFile استفاده کنی برای استفاده window.h رو اضافه کن

پ.ن: چنان تو پیام خصوصی گفتی از کتاب جعفر نژاد اشکال گرفتی گفتم چقدر این ذوق می کنه من از کتاب The Shellcoder's Handbook (http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X/ref=sr_1_3?ie=UTF8&qid=1308583648&sr=8-3) اشکال گرفتم اینقدر حال نکردم

c_doost
دوشنبه 30 خرداد 1390, 20:25 عصر
سلام من این کتاب رو نخوندم ولی شاید این تابع ها رو یه جای دیگه تعریف کرده و داره استفاده می کنه ، می تونی از MoveFile و DeleteFile استفاده کنی برای استفاده window.h رو اضافه کن

پ.ن: چنان تو پیام خصوصی گفتی از کتاب جعفر نژاد اشکال گرفتی گفتم چقدر این ذوق می کنه من از کتاب The Shellcoder's Handbook (http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X/ref=sr_1_3?ie=UTF8&qid=1308583648&sr=8-3) اشکال گرفتم اینقدر حال نکردم
کارایی که گفتید انجام دادم ولی نشد

quiet_programmer
دوشنبه 30 خرداد 1390, 20:42 عصر
با سلام.

تابع remove و rename تو سرتیتر stdio.h تعریف شدن. برای اینکه بتونی ازشون استفاده کنی این هدر رو اینکلود کن.

شکل کلی تایع rename

int rename ( const char * oldname, const char * newname );

مثال:

#include <stdio.h>

int main ()
{
int result;
char oldname[] ="oldname.txt";
char newname[] ="newname.txt";
result= rename( oldname , newname );
if ( result == 0 )
puts ( "File successfully renamed" );
else
perror( "Error renaming file" );
return 0;
}

شکل کلی تابع remove

int remove ( const char * filename );

مثال:

/* remove example: remove myfile.txt */
#include <stdio.h>

int main ()
{
if( remove( "myfile.txt" ) != 0 )
perror( "Error deleting file" );
else
puts( "File successfully deleted" );
return 0;
}

منبع مثالها:
http://www.cplusplus.com/reference/clibrary/cstdio/