פורסם 2004 ביולי 821 שנים ברצוני להדפיס מספר כ string ואינני יודע איזו פונקציה ב ++C עושה זאת.אודה למי שיעזור לי בנושא.
פורסם 2004 ביולי 821 שנים אני לא חושב שיש פונק' כזו, אבל למה שלא תכתוב אחת כזו בעצמך?אם אתה רוצה להמיר ספרה לתו, פשוט תוסיף לה את '0' ואז קיבלת את התו שמתאים לספרה. עכשיו נשאר רק לכתוב לולאה שמשתמשת בזה כדי להמיר מספר שלם לchar*
פורסם 2004 ביולי 821 שנים ע"י שימוש בפונקציה itoa שנמצא ב-stdlib.h בסינטקס הבאchar* itoa(int value, char *string, int radix);כאשר radix הוא הבסיס שאתה עובד בו (במקרה הרגיל 10), value הוא המספר והתוצאה תוצב לתוך string (שתפקידך לדאוג שיהיה מספיק גדול)
פורסם 2004 ביולי 1021 שנים הבעיה בפונקציה הזו שהיא לא ANSI, כלומר לא בסטנדרט של C.עוד בעיה בפונצקיה שההתנהגות שלה לא צפויה.למשל אם תתן לה את המחרוזת "123hello" אז היא תחזיר לך את המספר 123 ולא שגיאה. כלומר תצטרך לבצע בדיקות קלט מראש.בכל מקרה אני מציע שתממש פונקציה כזו בעצמך, זה ממש לא מסובך, ויכול להיות תרגיל שימושי טוב בשבילך אם זה משהו מאתגר בשבילך.
פורסם 2004 ביולי 1221 שנים מחבר בחרתי בשימוש בפונקציה: sprintf אשר פתרה לי את הבעיה בלווויית הערה של המעבד שזיהה משהו החשוד כפוינטר.העיקר שהתכנית עברה הידור.
פורסם 2004 ביולי 1221 שנים לא הבנתי מה קשורה sprintf.ואני ממליץ לך להתייחס לכל warning בתור error ותמיד לקמפל כל דבר עם דרגת ה warnings הכי גבוהה שאפשר.זה לפחות מה שידרש ממך בכל מקום שתבוא אליו ללמוד תכנות ברמה גבוהה.
פורסם 2004 ביולי 1221 שנים אם אתה סתם רוצה להדפיס מספר אתה פשוט עושה:cout << i;אם אתה רוצה להמיר אותו ל string אפשר בצורה דומה אבל במקום cout משתמשים ב ostringstreamostringstream myos;myos << 777678;myos.str;() מחזיר string של C++אם אתה מתכנת ב C++ תיקני אני ממליץ להשתמש בספרית ה IOStreams שלה ולא בספריה של C, כי היא יותר בטוחה (פחות void *)
פורסם 2004 ביולי 1221 שנים לא הבנתי מה קשורה sprintf.sprintf עובד כמו printf רק שהוא מקבל בתור פרמטר buffer (מסוג char*) ומדפיס את מה שאתה רוצה לתוך ה-buffer במקום למסך.כך אתה יכול "להדפיס" מספר לתוך מחרוזת
פורסם 2004 ביולי 1221 שנים מחבר #include <iostream>using std::cout;using std::cin;using std::endl;#include <stdio>char *retChar(int);void main(){ char *myChar = retChar(987654); for(int i = 0;i < sizeof(myChar);i++) cout << myChar;}char *retChar(int myInt){ char c[18]; //simply large enough - sprintf(c, "%d", myInt); return c;}
פורסם 2004 ביולי 1221 שנים אתה סתם עושה עבודה מיותרת ומאריך את הקוד. הנה השיטה הסטנדרטית:#include <iostream>#include <sstream>int main(){ std::ostringstream myos; myos << 987654; std::string s = myos.str(); //s gets a copy of the buffer string in myos std::cout << myos.str() << std::endl;}
פורסם 2004 ביולי 1221 שנים יישור לשמאל כמו שצריך עושים ככה[left][ltr]text bla bla text[/ltr][/left]אין כפתור שעושה את זה, פשוט צריך לזכור (אל תשאלו אותי למה)
פורסם 2004 ביולי 1221 שנים הלינק קצת ארוך אבל מגיע ל wiki עם הסברים איך להתקין ולהשתמש.http://wiki.mozilla.org.il/index.php/%D7%9B%D7%99%D7%95%D7%95%D7%A0%D7%99%D7%95%D7%AA_%D7%93%D7%A3עריכה: חשבתי שזה יתקן לי את בעית היישור לצד שמאל, ויותר נוח להקליד ככה את הקוד אבל זה לא משנה את התצוגה בפורום
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.