מעבר לתוכן

שאלת נוב במבוא למדמח


snorlax

הודעות מומלצות

אני צריך לקלוט מספר ללא סימן גדול ממש מ-2,

יש דרך לקלוט עם scanf מספר unsigned int ולוודא שבאמת נקלט מספר כזה? כי זה ללא ממש עובד לי

 

unsigned int x = 0;
scanf("%u", &x);
while (x <= 2 ) {
  scanf("%u", &x);
}

 

יש עם זה 2 בעיות:

אם מכניסים תו כלשהו שהוא לא מספר יש לולאה אינסופית (הוא נשאר בSTDIN וכל פעם הSCANF לא באמת קולט?)

ואם מכניסים למשל -1 אז זה כן עובר  :?

קישור לתוכן
שיתוף באתרים אחרים

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

כנראה שיש דרכים אחרות.

קישור לתוכן
שיתוף באתרים אחרים

scanf מחזיר את מספר הארגומנטים שהוא קלט בהצלחה או 1- במקרה של כישלון.

לכן בדיקה כזו אמורה לעבוד:

int check;
unsigned int x;
check = scanf("%u", x);
while (check=!1)
check = scanf("%u", x);

קישור לתוכן
שיתוף באתרים אחרים

הצטרפות לשיח

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

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...