נשלח בתאריך: 19 January 2007 בשעה 13:52 | | IP רשוּם
|
|
|
|
ברשותכם אפרסם פה את קטעי הקוד המדוברים על מנת שתבינו את הבעיה טוב ככל האפשר.
המצב הוא כזה:
בתוכנית יש לי class student ורשימה מקושרת של class'ים מסוג זה.
עליי לשמור את הנתונים מהרשימה המקושרת לקובץ.
אני צריך לגשת דרך איבר ברשימה המקושרת לסטודנט ומשם להוציא נתונים כמו id,avergae וכו'.
הכל טוב ויפה עד שאני מנסה ליצור פונקציה שתחזיר את שמו של הסטודנט.
משום מה היא לא מחזירה כלום.
void save(element *st_h,element *sb_h){ element *stu = st_h; element *sub = sb_h; int t_stu_id,t_stu_class; float t_stu_avg; char *t_stu_name; ofstream out("school_students"); if(!out){ cout<<"cannot open file"<<endl; exit(1); } while(stu!=NULL){ t_stu_id = stu->get_id(); t_stu_class = stu->get_stu_class(); t_stu_avg = stu->get_avg(); t_stu_name == stu->get_stu_name(); cout<<t_stu_name; out<<" "<<t_stu_id<<" "<<t_stu_class<<" "<<t_stu_avg<<" "<<t_stu_name<<endl; stu = stu->getNext(); } out.close(); }
השורה המודגשת בפונקציה הנ"ל היא שורת הקריאה לפונקציית הביניים שנמצאת באיבר של הרשימה המקושרת.היא מחזירה ערך לתוך char * בשם t_stu_name
char* get_stu_name(){ char *T; T = st.get_name(); return T; };
הפומקציה הנ"ל היא פונקציית הביניים הנמצאת באיבר של הרשימה המקושרת.
T מקבל מהפונקציה get_name שנמצאת בתוך class student את שם הסטודנט,ובפונקציה הזו T מקבל את הערך כמו שצריך.הבעיה היא שהוא לא מעביר אותו הלאה לפונקציית ה save שכתובה למעלה,כמו שצריך.
ולקינוח:
char* get_name(){return stu_name;};
זוהי הפונקציה בתוך class student,שמחזירה את הערך stu_name.
לסיום רק כדי לעשות סדר:
הפונקציה בתוך class student שולחת ערך לפונקציה בתוך class element (איבר של רשימה מקושרת) שמעביר את הערך הלאה לפונקציית הכתיבה לקובץ.
בין הפונקציה ב-class element לפונקציית השמירה ה-string הולך לי לאיבוד
מתנצל מראש על אורך הנושא...
|