אולי קצת טפשי, אבל..

litala

New member
אולי קצת טפשי, אבל..

עוד שתי שאלות, דיי בסיסיות, אבל בכל זאת.. 1. באחזקת מחרוזת (אוסף סדור של charים), אם אני מעוניינת בהמרה מint או float לstring (של C++) או ל*char , איך אני מבצעת את זה?? מסיבה מסויימת, הפונקציה itoa לא עובדת (אולי הinclude שלי לא מספק?!) ןהפונקציה ecvt דורשת גודל השדה כארגומנט-מה שאין באפשרותי לספק.. (בקיצור,אני רוצה להחזיק טקסט המכיל אוסף chars מוגדרת+ יצוג תוכן של שדות שלי, לא משנה לי אם להשתמש בstring או ב*char, העיקר שה convertion יתבצע..) 2. למה בכלל הfactory עדיף על הbuilder? לטעמי הם עושים את אותו הדבר, ובדרך לא כל כך שונה במבחינת קונספט.. בי בינתיים, ותודה שוב..
 

ihovav

New member
אני מצרף קובץ

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

litala

New member
ובכל זאת..הצילו!!

את פונקציית הecvt אני מכירה, אבל השימוש בה מגביל מאד.. על-מנת לייצג בעזרתה float יש לדעת מראש נתנים מאד ספציפיים על הערך (מיקום הנק´, סימן המספר..), מכיוון שהשימוש שלי ביצוג הstring-י מתבצע על שדות המחלקה, אין באפשרותי לתת מידע כזה.. האם אין שום אובייקט בעל conversion constructor מfloat לstring או ל*char , או לחילופין פונקציה אחרת "ידידותית" יותר למתכנת (במקרה הזה- אני..)?? האופציה השניה שלי היא לרשת מclass string ולממש מתודה שכזו (overloading לאופרטור >> או +, עבור * float+ string/char) אבל אני בספק אם אני הראשונה שנתקלת בבעיה שכזו.. תודה. ליטל
 

עידית_

New member
float זה נושא כאוב.

תמיד הוא יעשה לך בעיות. מה שלא תנסי לעשות איתו. אני פעם ברוב יאושי מימשתי בעצמי מחלקה בשם Number שמטפלת במספרים ממשיים בצורה נורמלית יותר. פשוט שמתי שם 2 חברי מחלקה: int integer; int fraction; והעמסתי את כל פונקציות ההשמה, השוואה, הדפסה וכולי. החיסרון: בשביל לקלוט מספר צריך היה לקלוט אותו כמחרוזת של תווים, ואז הפעלתי קונסטרקטור שיוצר את המספר כמו שצריך. בקיצור: את לא הראשונה שנתקלת בבעיה וגם לא האחרונה. אבל אני לפחות לא מכירה פתרונות אלגנטיים... אולי מישהו אחר מכיר.
 

devnull

New member
itoa is not ansi אבל יש תקוה

הכי פשוט sprintf אם זה לא עובד אז נראה אבל זה באמת הכי פשוט.
 
למעלה