נשלח בתאריך: 13 April 2007 בשעה 11:45 | | IP רשוּם
|
|
|
|
בוקר טוב שאלה לי
האם יש איזשהו איסור להשתמש ב gets בתוך case (שהוא חלק מ switch)?
כי אני כותב תוכנית, עם ממשק למשתמש שמציע שתי אופציות לבחירתו שמתורגמות לשני קייסים (case). כאשר מתחיל הקייס השני, יש פקודת הדפסה שמורה למשתמש להקליד מחרוזת של 9 מספרים ותווים מעורבים ביחד, וכשאני עושה דיבוג, החץ הצהוב פשוט עובר על פקודת ה gets של המחרוזת כאילו כלום. פשוט כאילו אין שם כלום. שום דבר לא נכנס למחרוזת הזו מהתווים שהקיש המשתמש. מה שיש בטבלת הערכים זה נקודה, כלומר בדיוק זה: '.' והערך אסקי כנראה של -52.
קלט אפשרי שיכניס המשתמש הוא כדלקמן : 3y^2+2x^2 ( תשעה תווים בדיוק)
הgets אמור להכניס את המחרוזת לתוך מערך חד מימדי של 10 תאים שקראתי לו [10]formula שהוגדר כטיפוס char.
char formula [10];
וזה קטע התוכנית: (הברייק הוא סיומו של ה case הראשון)
break;
case 2:
printf( "enter surface formula:\n");
gets(formula);
יש למישהו הסבר לבעיה? בבקשה כבר 4 ימים אני עם אותה בעיה, אולי הפיתרון פשוט אך איני מוצא אותו. למה הדיבוג מדלג על פקודת ה gets?
|