עבור לתוכן

הגבלת תווים

Featured Replies

פורסם

בוקר טוב,

יש לי שאלה, האם אפשר להגביל מס' תווים?

לדוג':

אני רוצה שהקלט יהיה מס' ת.ז,משקל וגובה.

ת.ז יהיה מקס' 10 ספרות

משקל מקס' 3

וגובה 4

את ההגבלה אחרי הנק' אני יודע לעשות מה עם לפני?

תודה,

פורסם

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

פורסם
  • מחבר

visual c++

פורסם

יפה, עכשיו תענה על השאלה השניה גם.. זה אפליקציית CONSOLE או GUI ?

פורסם
  • מחבר

CONSOLE

פורסם

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

פורסם
  • מחבר

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




#include<stdio.h>

int main()

{
int stu1_id,stu2_id,stu3_id;
float stu1_h,stu2_h,stu3_h,stu1_w,stu2_w,stu3_w;

printf("Enter First Student Info\n");
scanf("%d%f%f",&stu1_id,&stu1_h,&stu1_w);

printf("Enter second Student Info\n");
scanf("%d%f%f",&stu2_id,&stu2_h,&stu2_w);

printf("Enter Third Student Info\n");
scanf("%d%f%f",&stu3_id,&stu3_h,&stu3_w);


printf("\n%-d\t%-8.3f\t%-8.1f",stu1_id,stu1_h,stu1_w);
printf("\n%-d\t%-8.3f\t%-8.1f",stu2_id,stu2_h,stu2_w);
printf("\n%-d\t%-8.3f\t%-8.1f\n",stu3_id,stu3_h,stu3_w);



}

[br]פורסם בתאריך: 8.11.2008 בשעה 18:42:57


עכשיו הגבלתי את הנתונים לספרות אחרי הנק' אבל אני לא יודע איך להגביל לפני
פורסם
  • מחבר

שלום,

עדיין לא קיבלתי תשובה לשאלתי,

איך אני יכול למנות את התווים מהקלט ולהגביל אותו למס' מסוןיים????

פורסם

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

פורסם

שלום,

עדיין לא קיבלתי תשובה לשאלתי,

איך אני יכול למנות את התווים מהקלט ולהגביל אותו למס' מסוןיים????

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

אתה יכול לבצע הגבלת קלט בעזרת שימוש בSTRINGS ובGETCH

פורסם
  • מחבר

אני יודע הכוונה שליהייתה שבחרתי כמה ספרות הפלט יראה

אבל אני רציתי בנוסף גם לתת הודעה שגיאה אם המס' שהוקלד לא בגודל המתאים

פורסם

כמה ספרות אתה רוצה לפני הנקודה ? 3 ? אז הערכים הם בין 000 ל999 - פשוט תבדוק שהערך שקיבלת ביניהם. לולאת WHILE קטנה ואתה מסודר.

פורסם
  • מחבר

שלום שלום ולילה טוב,

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

מה השינוי הדרוש???


#include<stdio.h>

int main()

{
float stu_id;
float stu_h,stu_w;
int i;

for(i=0; i<3; i++)
{
printf("Enter Student Info\n");
scanf_s("%f%f%f",&stu_id,&stu_h,&stu_w);


if((stu_id<=9999999999) && (stu_h<=9999) && (stu_w<=999))

printf("\n%-.0f\t%-8.3f\t%-8.1f\n",stu_id,stu_h,stu_w);

else
printf("Error Info For Student\n");

}

}

פורסם
  • מחבר

בוקר טוב,

יש לי שאלה נוספת בנושא, האם כדי להקל על עצמי אני יכול להשתמש במערכים?

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

אנא נסו לעזור לי

פורסם

אין צורך להצמיד את הקוד לשמאל.

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

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

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

לא הבנתי את השאלה השנייה שלך. איפה אתה קולט מחרוזת?

אגב, למה בכלל stu_id הוא מטיפוס float? זה לא אמור להיות פשוט מספר? (int)

ארכיון

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

דיונים חדשים