עבור לתוכן
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.

בדיקת קלט למספרים שלמים בלבד

Featured Replies

פורסם

שלום לכולם,

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

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

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

תודה לכל העוזרים !

פורסם

עדיף שתנסה קודם לבד לא?

פורסם

יש לך כמה אפשרויות. 

אחת - לקלוט את המספר כמחרוזת, ואז לעשות עליה את כל הבדיקות

שניה - לנסות לקלוט כמספר ולהתמודד עם התוצאות במקרה ויקישו משהו אחר (אם זה לא חשוב הוא פשוט יחזיר EOF אני חושב...)

בהתאם לכלים שלמדת תדע לאיזה תשובה מצפים ממך. 

 

 

פורסם
  • מחבר

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void main(){
    int rows,x;
    printf("Insert number of rows (1-50): ");
    x=scanf("%d" ,&rows);
    while(x!= 1 || rows>50 ||rows<1)
    {   while(getchar()==' ')
        continue;
        while(getchar()!='\n');
        printf("Wronf input, try again\n");
        printf("Insert number of rows (1-50): ");
        x=scanf("%d" ,&rows);
        
    }

 

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

פורסם

אם מותר לך יש פונקציה של string אשר נקראת isdigit  אשר בודקת כל תו האם הוא מספר

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

דוגמא

 

int main()
{
    int i=0;
    char input[10];
    printf("please insert number\n");
    scanf("%10s",input); /* the 10 is for limit the input -> buffer over flow */
    while(input > '0'&& input<'9')
    {
        printf("%c",input);
        ++i;
    }
    if(input=='\n' || input=='\0')
    {
        printf("good input");
        return 1;
    }
    else
    {
        printf("bad input");
        return 0;
    }
}

 

ארכיון

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

דיונים חדשים

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.