שאלות של מתחיל

shade21

New member
שאלות של מתחיל

שלום לכולם 1. רציתי לדעת מה ההבדל בין הפקודות cout ו-cin לבין printf ו-scanf? 2. מעוניין לדעת מה פרוש הסימנים % ו-& כאשר משתמשים בהם ב-scanf לדוגמא: (scanf("%a", &b וגם למה a נמצא במרכאות וb לא? תודה מראש
 

DecayCell

New member
מדובר בכלים של שפות שונות

printf ו-scanf הן פונקציות ספריה של שפת C, ואילו cout ו-cin הן מחלקות של שפת ++C. עליך לבחור במה להשתמש לפי השפה בה אתה כותב. לגבי השאלה השניה - יש הבדל מהותי בשימוש בסימנים. הסימן %, בהקשר בו הזכרת אותו, הוא סמן של מחרוזת הפורמט - קרי, הוא עוזר לפונקציה לדעת איזה סוג מידע אתה שולח אליה (או מצפה לקבל ממנה, במקרה של scanf). ה-% לא מגיע לבד, הוא מגיע תמיד עם עוד תוים שנותנים מידע לפונקציה על סוג המשתנה שאתה שולח אליה/רוצה לקבל ממנה. מידע לגבי הסוגים האפשריים אפשר למצוא בתיעוד של הספריה (או בתפריט העזרה, אם אתה משתמש בקומפיילר של בורלנד). כשה-% מופיע בהקשר אחר, לא בין מרכאות, הוא משמש כאופרטור המודלו - הוא מחזיר את שארית החלוקה של שני האופרנדים שלו. הסימן & מציין שאתה רוצה לשלוח את הכתובת של המשתנה לפונקציה, ולא את הערך שלו. כשאתה רוצה להדפיס את תוכנו של משתנה אתה שולח לפונקציה את הערך שלו, אבל כשאתה רוצה לקלוט לתוכו - אין לך כל שימוש בערך הנוכחי שלו, אתה רוצה בסה"כ להגיד לפונקציה איפה לאכסן את המידע, ולכן אתה שולח אליה את הכתובת של המשתנה בעזרת האופרטור &.
 

gilad_no

New member
C,C++

SCANF,PRINTF אלו פונקציות מזמן של C, ואילו CIN\COUT אלו STREAMS של C++. בC++ תוכל להשתמש עם שניהם (מה שנוח לך יותר) בעוד שבC אתה מוגבל רק לראשונות. לגבי הסימנים: SCANF מחכה לקלט מהמשתמש ומכניס אותו לתוך משתנים. כדי להודיע לפונקציה איזה סוג קלט אתה מבקש (מחרוזת, מספר וכו'), ישנם סימנים מוסכמים לכך. הם יתחילו עם %. לדוגמא %d מציין מספר בעוד ש%s מציין מחרוזת (תוכל למצוא רשימה מלאה בתיעוד של הפונקציה). מכיוון שהפונקציה הינה של C, היא לא תומכת בהעברת פרמטרים BY REFERENCE ואתה צריך להעביר מצביע של המשתנה אותו אתה רוצה למלא. כדי להעביר כתובת של משתנה, מקדימים אותו עם &.
 
למעלה