שאלה קלה ומרגיזה...

arik23m

New member
שאלה קלה ומרגיזה...

מהי הטעות בקוד הזה??? למה אני לא מצליח ליישם כך ש-NUM_LEN יהיה שייך לקב' המספרים וגם יהיה בין 1-99 ביקשתי יותר מידי?? נא הצעותיכם. אם אי אפשר לשפר, אז הצעות חלופיות ( למרות שהייתי משתוקק לדעת למה זה לא עובד!!)
#include<iostream> //#include <ctype> #include <locale> using namespace std; int NUM_LEN; //1-99 //int t=0; void main() { fflush(stdin); do { fflush(stdin); //t=1; // NUM_LEN=-1; cout<<"Please enter NUM_LEN"<<endl; cin>>NUM_LEN; if (NUM_LEN>'0' &&NUM_LEN <'100') break; } while(1); //NUM_LEN<=0) || (NUM_LEN>=99) cout<<NUM_LEN<<endl; }​
 

vinney

Well-known member
מישמש אחד גדול עשית

אתה משווה INT עם CHAR ועוד שמת כמה תוים בתוך הגרשיים... תוריד את הגרשיים, למה הם שם בכלל?
 

arik23m

New member
קיבלתי את ההערה - לאחר שיפוץ -

עדיין הבעיה קיימת.
#include<iostream> //#include <ctype> #include <locale> using namespace std; int NUM_LEN; //1-99 //int t=0; void main() { fflush(stdin); do { fflush(stdin); //t=1; // NUM_LEN=-1; cout<<"Please enter NUM_LEN"<<endl; cin>>NUM_LEN; if (NUM_LEN>0 &&NUM_LEN <100) if (NUM_LEN>='0' && NUM_LEN<='9') break; } while(1); //NUM_LEN<=0) || (NUM_LEN>=99) cout<<NUM_LEN<<endl; }​
 

vinney

Well-known member
לא שיפצת. עדיין יש גרשיים.

האמת לא ברור לי הIF הזה עם ה0 ו9
 

arik23m

New member
הוא אומר ש--

האם NUM_LEN קטן ושווה של '9' (קוד אסקי של 9) וגם גדול ושווה ל-'0' (לקוד אסקי של '0'). או בעברית: האם NUM_LEN שייך לקבוצת המספרים.
 

vinney

Well-known member
הבנתי...

כל המבנה שלך בנוי כדי לטעות... למה לך IF בין 0 ל100 אם אתה בעצם מחפש בין '0' ל'9' ? למה לך לולאה אינסופית אם יש לך תנאי עצירה ברור שאתה עושה BREAK עליו? למה לך FFLUSH כשאתה עובד עם IOSTREAM? למה לך איתחול ל1- כשאתה מתחיל עם DO?
 

arik23m

New member
באתי לשאול יצאתי נשאל....

ידידים - אנא עזרה והצעות לשיפור! הכל כתוב בפירוט בשאלה המקורית.
 

vinney

Well-known member
לא עזרתי לך מספיק?

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

vinney

Well-known member
הא... תתעלם מהערות אגב, זה מה שיקרה

אמרתי לך FFLUSH מיותר לחלוטין כשאתה עובד עם IOSTREAM. מה שכן, FLUSH צריך לעשות, אבל נכון
 

arik23m

New member
נ.ב. - ניסתי גם עם isdigit - אך

אותה הבעיה: לולאה אין סופית כשמקישים תו שהוא אינו ספרה. (המסך מתמלא בפלט הנ"ל).
 
למעלה