פורסם 2009 ביולי 3016 שנים שלום! התחלתי לא מזמן ללמות תכנות ואני משתמש בתוכנה MS VISUAL C++ 2008 EXPRESS. כשאני משתמש בפקודה SCANF ו בסוף עושה COMPILE התוכנה נותנת לי אזהרה שעדיף להשתמש בפקודה SCANF_S. מה הבדל בין שני הפקודות האלה? כי גם כך וגם כך התוצאה יוצאת זהה?תודה.
פורסם 2009 ביולי 3016 שנים בינתיים אין בעיה שתשתמש ב-scanf ותתעלם מהאזהרה הזו. הסבר:scanf היא פונקצייה בעייתית קצת, כי היא פגיעה ל-buffer overflow. אני לא יודע אם למדת על מחרוזות, אבל בגדול כשאתה רוצה לקרוא מחרוזת מהקלט, אתה צריך להעביר ל-scanf משתנה מטיפוס מערך של char, שהגודל שלו הוקצה מראש. אם המחרוזת שאתה קורא יותר ארוכה מגודל המערך שנתת לפונקציה, אז המחרוזת תגלוש מעבר לגבולות המערך, מה שנקרא buffer overflow (וזה באג מאוד חמור, שיכול לגרום להמון בעיות).הפונקציה scanf_s מונעת (או לפחות מנסה למנוע) שגיאות כאלה. התוצאה אמורה לצאת זהה.אם לא הבנת מילה ממה שהיה כתוב בפסקה הזו, תחזור אליה אחרי שתלמד קצת על מערכים, מחרוזות והזכרון.
פורסם 2009 ביולי 3116 שנים מחבר אני רק התחלתי ללמוד את הקורס במסגרת התואר שלי ועברתי רק 4 הרצאות כך שאני לא יודע בינתיים על מה אתה מדבר
פורסם 2009 באוגוסט 116 שנים מחבר במכללה "סמי שמעון" אני לומד שם תואר ראשון להנדסת מכונות ויש לנו קורס C++ בתוכנית לימודים... מה הבדל בין SCANF לCIN?
פורסם 2009 באוגוסט 116 שנים במכללה "סמי שמעון" אני לומד שם תואר ראשון להנדסת מכונות ויש לנו קורס C++ בתוכנית לימודים... מה הבדל בין SCANF לCIN? scanf היא פונקציה של C. בC++ משתמשים בפונקציית cin על מנת לקבל קלט.int a;cin >> a;qq
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.