שאלה ב - ++C

karinns

New member
שאלה ב - ++C

יש לי שאלה ב - ++C ואין לי מושג אפילו מאיפה להתחיל. ניסיתי לחפש ב - google אבל לא הצלחתי למצוא כלום. יש לי קובץ txt שיש בו: int,string,int,string,int,string,int... כאשר המספר הראשון בקובץ הוא מספר הקלטים שהולכים להיות לי, ה - string הוא שם סטודנט וה - int הוא הציון של אותו הסטודנט. אני צריכה לקרוא את הנתונים לתוך וקטור. איך אני עושה את זה? תודה.
 

karinns

New member
תודה ושאלה.

לא ברור לי איך אני מתייחסת לזה שה - int הראשון שיש לי בקובץ הוא שונה מהשאר (כלומר, הוא למעשה אומר לי כמה הולכים לבוא אחריו). נראה לי שאם אני מכניסה את האיברים לוקטור אז אני יכולה פשוט להתעלם ממנו כי לא אכפת לי כמה יהיו אבל מצד שני אני לא יודעת איך לדלג על הקריאה שלו.
 

aaronc76

New member
מה לא ברור?

רוצה לדעת את הקוד או את האלגוריתם? אלגוריתם פשוט: לקרוא את השורות מהקובץ ולהכניס למערך :) יש לך אפשרות לבנות אובייקט סטודנט ולו 2 שדות. שם וציון. הכניסי כל זוג ערכים לאובייקט ואז את האובייקט לתוך המערך. יכולה להשתמש בפסיקים כstring tokenizer(לא בטוח לגבי השם).
 

karinns

New member
את האלגוריתם אני יודעת

מה שאני לא מצליחה להבין/למצוא הוא ה - syntax של איך עושים את זה.
 

מתכNET

New member
לא מבין מה הבעיה

הנה האלגוריתם: 1.קראי את המספר הראשון למשתנה בשם NUM 2.צרי VECTOR בגודל ערכו של NUM 3.תפעילי לולאה מספר פעמים כערכו של NUM ובכל איטרציה תקראי את המספר ואת השם או מה שזה לא יהיה
 

aaronc76

New member
לדעתי וקטור

הוא מערך דינמי. אין צורך להגדיר את גודלו.
 

מתכNET

New member
חבל על הוויכוח

1.מי אמר C++ בכלל? דיברתי על אלגוריתם. 2.אין דבר כזה VECTOR ב C++,זה לא חלק מהשפה.
 

nadav1974

New member
בוא נסתכל היטב

1. כותב ההודעה המקורית. 2. STL הוא חלק מהשפה. לא יעזור לך.
 

Misprint

New member
בעעע.. אל תזרוק סתם

יש מימוש סטנדרטי ב stl.. הוא ספציפי לטיפוס שמרכיז אותו, והוא דינמי בגודל .. אם אתה לא תגדיל את כמות הזכרון שהוא יכול להשתמש בו, הו יעשה את זה אוטומטית
 

גיאב9

New member
כיוון - אם עדיין אקטואלי

האסטרטגיה שלך לא נכונה. צריך לחלק את המשימה ל-2: 1. קריאת הקובץ וחלוקה לפי המפריד (,). -> התייחסות למספר הראשון בנפרד כדי שתדעי להגדיר את גודל המערכים/ווקטורים (למרות שזה דינמי ואת ממש לא צריכה לדעת את גודלו של ווקטור מראש). 2. טעינת האיברים שנקראו לתוך ווקטור מתאים. את (1) את יכולה לעשות כמובן בהרבה שיטות, למשל להעזר ב- split או ב- file.split לגבי (2) מכיוון שיש קשר בין הזוגות הנקראים (מלבד הראשון) - אז אני מציע שתגדירי struct שלך שיכלול סטרינג (שם הסטודנט) ו- int (הציון) ואז תגדירי ווקטור שמורכב מאיברים שהם מסוג ה- struct שלך. בפסאודו קוד זה משהו כזה:
struct st; // Your struct - that You have Defined (made of 2 things: Name:String and Grade:int) vector< st > v; // define the vector first_int = ... // the first number of the file while ( !in.eof() ) // read from 2nd input of file into the struct { // use split(...) or file.split to read into the struct st = ... // Each value from the file is read into the struct - you could use a small function to do it also. v.push_back(st); // fill the vector with pairs: Name-Grade // now you have a Vectore of Your defined struct filled with the data of your file. }​
 
למעלה