עבור לתוכן

קליטת מספרים בעזרת scanf

Featured Replies

פורסם

שלום לכולם

אני רוצה לקלוט מספרים אשר יוקלדו ע"י המשתמש ויופרדו ע"י רווחים

לדוגמה: 3 7 5 1 הבעיה הים שאינני יודע כמה מספרים יקליד המשתמש

(אם יהיה scanf מיותר התוכנית תחכה למספרים נוספים ואם לא אז לא כל המספרים יקלטו)

אני מניח שמדובר בלולאה כלשהי אך מה התנאי עצירה ?

בכל אופן אין לי בעיה שהמספרים יקלטו בזה אחר זה למערך ואשתמש בהם משם.

תודה מראש.

פורסם

השאלה היא מה נקרא אצלך סוף הקלט.

אופציה ראשונה היא לומר שהקלט מסתיים בירידת שורה (end of line). במקרה כזה, אם המשתמש ירצה להכניס:

1 3 5 7

2 4 8

אז בעצם רק ה-1 3 5 7 ייקלטו (ליתר דיוק, הוא לא יוכל להכניס את השורה השנייה בכלל כי לא יהיה scanf שיקרא אותם).

אופציה שנייה היא לקרוא עד סוף הקלט (end of file). במקרה כזה, המשתמש צריך באופן ידני לסמן לתוכנה שלך שמסתיים הקלט, באמצעות ctrl+Z (אחרת התוכנה תמשיך לצפות לקלט).

השאלה היא, איזה מהשיטות אתה מעדיף?

פורסם
  • מחבר

אני מעדיף את השיטה הראשונה

שבה יקלטו מספרים אשר רווח מפריד בניהם ותסתיים הקליטה בירידת שורה.(כאשר המשתמש יקיש enter)

פורסם
  • מחבר

היייי יש לי רעיון : לולאת while אשר תנאי העצירה שלה יהיה 'getchar()!='\n

ובתוך הלולאה יתבצע scanf כנדרש !!!

תודה רבה לכולם.

מקווה לשאול שאלות קשות יותר בעתיד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים