PDA

View Full Version : مشكل با gets()



lvlina_r
جمعه 27 دی 1387, 11:15 صبح
سلام
ببخشين اين كد من مشكلش كجاست كه gets كار نميده
يعني بعد از مقدار دهي هم متغيرم خاليه

struct BOOK *Search_Name()
{
char name [50];
cout <<" \t\tEnter the name of book for searching\n\t";
gets(name);
int i=0,pos,iRecordeNum;
struct BOOK *nb;
FILE *fp=fopen ("book.txt","r+");
fseek( fp, 0, SEEK_END );
pos = ftell( fp);
iRecordeNum = pos / sizeof( struct BOOK);
fseek( fp, 0, SEEK_SET );
nb = new struct BOOK[iRecordeNum];
while(fread (nb,sizeof(struct BOOK),1,fp))
{
if((strcmp(name,(*nb).BookName))==0)
{
cout << "\t\tyour book that u want was found \n\t";
cout << "\t\tthe state of ur book is: "<< (*nb).State << endl;
system("pause");
return nb;
}
}
cout <<"\t\tdosent found\t\n";
system("pause");
}

Saeed_m_Farid
جمعه 27 دی 1387, 12:29 عصر
بعد از مقدار دهي هم متغيرم خاليهكدوم متغيرتون؟ name كه مقداردهي ميشه و gets موردي نداره.
شما فايل book.txt تون رو نذاشتين و فرمت ساختارتون هم معلوم نيست شايد اصلا كتاب مورد نظرتون موجود نيست؟ اگه هم هست چه طوري دارين از اين تابع استفاده ميكنين؟ اگه آرايه نتيجه كه از تابع دارين ميگيرين رو به آرايه اي بدين كه new كردين مقدار برگشتي خراب ميشه! چون 2 بار new كردينش (يه بار تو تابع و يه بار بيرونش)؛ ضمنا اگه تو حلقه تون هيچوقت تو if نيافته يه مقدار تصادفي بهتون برميگردونه چون جاي ديگه اي return ندارين، اونوقت موقع خوندنش به مشكل ميخورين ...
سوالتون رو خيلي مبهم نوشتين؛ كجاش مشكل دارين؟

lvlina_r
جمعه 27 دی 1387, 13:48 عصر
برنامه مديريت كتابخانه است
مي خوام بر حسب نام search كنم
ساختارمم به اين شكله


struct BOOK
{
char BookName[50];
char Languages[10];
char Publisher[50];
char Auther[50];
char Translator[50];
char TheQualityOfAvailableVolumes[10];
char State[8];
struct _Date PublicationDate;
struct _Date ReturnDate;
struct _Date ReserveDate;
}

ولي وقتي به اينجا ميرسه Name خاليه
يعني فقط يه space
و مقداري كه ميديم توش ذخيره نمي شه
نمي دونم چطوري file , book.txt را بذارم

Saeed_m_Farid
جمعه 27 دی 1387, 16:37 عصر
نمي دونم چطوري file , book.txt را بذارم
تو قسمت ارسال ضميمه ها پروژه با فايل txt رو zip كنيد و همراه پست بعدي ارسال كنيد

lvlina_r
جمعه 27 دی 1387, 16:58 عصر
:چشمک:27439
اينم فايلم
دو تا كتاب بيشتر توش نيست
در ضمن نميدونم چرا اطلاعاتم منظم نيست
اگه همكلاسيام اينجا نبودند كل برنامم را مي ذاشتم تا مشكلاش رفع شه ولي به دليل مشكلات امنيتي نمي تونم :ناراحت::ناراحت::ناراحت: