עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

עזרה בבדיקת קלט.| וגם שאלה על פונקציית scanf.

Featured Replies

פורסם

שלום,

אני צריך לצרף בדיקת קלט לתכנית האמורה לקבל מספרים שלמים בלבד.

צירפתי בדיקת קלט בדיוק כפי שהופיע בהנחיות.

מה שקורה זה שאם אני מכניס מספר שלם ואחריו מספר ממשי, הוא לא מזהה את הבעיה.

(אם המספר הראשון שאני מכניס הוא ממשי הוא כן מודיע על כך.)

היכן שוכנת הבעיה?

[attachment deleted by admin]

פורסם

scanf קורא עד שהוא נתקל בתו שלא מתאים למה שאתה מנסה לקרוא כרגע.

כלומר, אם אתה מנסה לקרוא את הקלט "123.45" בתור מספר שלם (d%) אז הוא יעצור ברגע שהוא יגיע לנקודה.

אם הקלט הוא כזה:

123 456.78

אז בהתחלה הוא יקרא את 123 בהצלחה, ואחר כך הוא יקרא את 456 וייעצר בנקודה.

אם הקלט הוא כזה:

456.78 123

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

פורסם
  • מחבר

אז אתה אומר שבדיקת הקלט שלי היא תקינה? (כי כאשר משתמש יכניס כקלט המספר השני מספר ממשי הוא ייקבל תוצאה לא בדיוק נכונה.)

פורסם

זה כבר תלוי בדרישות של התכנית.

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

פורסם
  • מחבר

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

פורסם
  • מחבר

בהמשך לבדיקת הקלט, הייתי רוצה לדעת באופן כללי מה מחזירה הפונקצייה scanf, כלומר מה היא מחזירה במקרה הזה למשתנה number,

וכמו כן כיצד זה מתקשר לבדיקת הקלט.

[attachment deleted by admin]

פורסם
  • מחבר

אוקיי, הערך המוחזר הוא מס' הערכים שנקלטו בהצלחה, השאלה היא מה בדיוק מוגדר כקליטה מוצלחת?

פורסם

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

scanf("%d %d", ...)

פורסם

בדיקת הקלט שלך לא תקינה.אני לא יודע איזה קורס אתה עושה ויש מצב שיחליקו לך את זה.

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

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

ארכיון

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

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.