ABA


"בעייה בשמוש בווקטורים ב- C++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13362 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13362
chenke 
חבר מתאריך 1.7.02
730 הודעות, דרג אמינות חבר זה
   16:36   04.06.06   
אל הפורום  
  בעייה בשמוש בווקטורים ב- C++  
 
   הפרוייקט שלי צריך למיין קובץ במבנה טבלאי. בתחילת הקובץ מצויין מספר השדות בקובץ. לאחר מכן בהתאם
למספר השדות מופיעים גודל השדות (כל השדות מסוג טקסט ואין לי ידע מראש לגבי סה"כ מספר השדות), ולבסוף
מופיעים השדות עצמם.
כתבתי קוד שמתמש בווקטורים כדי להחזיק את גודל השדות ואת תוכן השדות. תחילה הוא קורא את מספר השדות
והגודל שלהם לתוך וקטור ולאחר מכן קורא את כל השדות לתוך וקטור אחר. לאחר מכן אני מנסה להדפיס את תוכן
הוקטור שמכיל את השדות וכאן אני נתקל בבעיה: למרות שיש לולאה שעוברת על אברי הוקטור, מה שמודפס בפועל
זה רק הערך האחרון שהוכנס לוקטור. הוספתי פקודת הדפסה לערך שמוכנס לוקטור ואני יכול לראות שכל פעם מוכנס
ערך שונה. אני מצרף קוד במטרה שמי שמתמצא ויש לו סבלנות יוכל לגלות מה הבעיה.

תודה מראש,

חן.https://rotter.name/User_files/nor/4482e1e74b67b1f4.txt


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  היי :) Net_Boy  04.06.06 21:57 1
     תודה על התגובה והמחמאות. הבעייה נפתרה chenke  04.06.06 23:03 2
         צודק... עשית בשכל, הפתרון הזה עלה לי לראש tal47  05.06.06 13:05 3

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק, 2 נקודות
   21:57   04.06.06   
אל הפורום  
  1. היי :)  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 04.06.06 בשעה 22:06 בברכה, Net_Boy
 
נחמד לדעת קודם כל שאתה כותב נכון בניגוד ל 99% מהפורום
הכוונה היא לשימוש ב STL , שורת MAIN נכונה , הזחות , תיעוד

אז ח"ח על זה


עכשיו יש משהו שדי שיגע אותי חחח
העובדה שהמערך שלך של הגדלי שדות הוא אותו שם משתנה של integer משני שמיועד למקרה
אז תתקן את זה

עוד טיפ מבחינה עיצובית זה לא נכון לעשות 2 מערכים לשדה
אתה צריך לייצג שדה כ Struct ולעשות List מסוג המבנה הנ"ל.


לגבי הבעייה אני חושב שהיא ב strcpy
תנסה להדפיס בלי ההעתקה זאת אומרת :
printf("%s\n",fileds);

תגיד מה יצא לך ...
ואם זה לא ילך תעלה את הקובץ טקסט ואני אסתכל על זה יותר לעומק



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
chenke 
חבר מתאריך 1.7.02
730 הודעות, דרג אמינות חבר זה
   23:03   04.06.06   
אל הפורום  
  2. תודה על התגובה והמחמאות. הבעייה נפתרה  
בתגובה להודעה מספר 1
 
   הבעייה הייתה בעובדה שהווקטור היה מסוג מצביע (char *), וכל פעם דוחפים לתוכו את אותו משתנה (אפילו שהערכים שבו שונים), כלומר הוא מקבל כל הזמן את אותה כתובת בזיכרון ולכן בסוף כל אברי הוקטור מחילים אותו ערך- הערך שאחרון שקיבל המשתנה שהוכנס לוקטור.
פתרתי את זה ע"י כך ששיניתי את הסוג של הוקטור למבנה (struct), שיש לו שדה מסוג char ועוד מספר שדות נוספים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
tal47  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.8.03
6353 הודעות, 11 פידבק, 18 נקודות
   13:05   05.06.06   
אל הפורום  
  3. צודק... עשית בשכל, הפתרון הזה עלה לי לראש  
בתגובה להודעה מספר 2
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net