ABA


"כמה טיפים ועצות לc++"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #12646 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12646
DOWNTOWN
חבר מתאריך 28.5.02
5388 הודעות
   14:41   01.11.05   
אל הפורום  
  כמה טיפים ועצות לc++  
 
   ערכתי לאחרונה בתאריך 01.11.05 בשעה 14:42 בברכה, DOWNTOWN
 
1. אם אתם רוצים לרשום

cin.get();

או כל פונקציה אחרת שקשורה באובייקט של cin וזה לא פועל לכם, שימו לב שסגרתם כל שורה ב
endl אם אתם רוצים לרדת שורה
או ב flush אם אתם רוצים להישאר שורה.
למשל

#include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
std::cout << "I just love this world!" << std::endl;
std::cout << "Press enter to exit" << std::flush;
std::cin.get();
}


למרות שהיום רוב הקומפלירים מוסיפים את זה ככה שזה בדרך כלל לא יהיה הפיתרון, עדיין כדאי להשתמש בזה כי זאת גם דרך הכתיבה המומלצת והנוחה ביותר.
אם גם זה לא עזר
צריך להוסיף לפני זה את

cin.ignore()

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

#include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
std::cout << "I just love this world!" << std::endl;
std::cout << "Press enter to exit" << std::flush;
std::cin.ignore();
std::cin.get();
}


טיפ שני:
פונקציית ה


main()

תמיד מחזירה int.

int main()

לעוד פרטים: http://www.research.att.com/~bs/bs_faq2.html#void-main

טיפ שלישי:
כשרוצים לחלק שתי מספרים שלמים במספר והתוצאה צריכה להיות מספר עשרוני יש בעיה.
לדוגמא:

#include <iostream>

int main()
{
int x = 3;
int y = 8;
float result;
result = y / x;
std::cout << result << std::endl;
}


התוצאה שתצא מזה תיהיה 2
אז מה שאנחנו עושים זה בעצם גורמים למחשב לחשוב שx ו y הם מספרים עשרוניים.
איך עושים את זה?
עם

static_cast<output_type>(variable)

לדוגמא:

#include <iostream>

int main()
{
int x = 3;
int y = 8;
float result;
result = static_cast<float>(y) / static_cast<float>(x);
std::cout << result << std::endl;
}


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

static_cast

הוא השיטה הכי בטוחה.


אם יש לי טעות, תקנו אותי.

s22holyshits33

אני מלך


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  תודה :] nick 01.11.05 16:00 1
  תודה!!... Non Stop 01.11.05 16:52 2
     אפשר, אבל ככה הקומפיילר יודע שבאמת התכוונת לעשות cast. bizho 01.11.05 17:05 3

       
nick
חבר מתאריך 13.4.03
7994 הודעות
   16:00   01.11.05   
אל הפורום  
  1. תודה :]  
בתגובה להודעה מספר 0
 
  


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

   16:52   01.11.05   
אל הפורום  
  2. תודה!!...  
בתגובה להודעה מספר 0
 
   בקאסינג אפשר לוותר על ה
static_cast<float>(y)
ולרשום רק
(float) y

תודה על ההשקעה


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

   17:05   01.11.05   
אל הפורום  
  3. אפשר, אבל ככה הקומפיילר יודע שבאמת התכוונת לעשות cast.  
בתגובה להודעה מספר 2
 
  


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

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

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



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