התכנית מחכה לקלט נוסף ומעכבת את התקדמות הריצה. - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


amd@ati

Recommended Posts

שאלה פשוטה לי אליכם:

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

התכנית נעשתה ב-CodeBlocks.

תודה.[br]פורסם בתאריך: 8.03.2010 בשעה 20:22:35


טוב נו, כמובן שפתרתי זאת על ידי הורדה של ה-\n מה-scanf. :screwy:

בכל זאת אשמח להסבר, מדוע זה קרה?

[attachment deleted by admin]

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

נסה לשנות את הקוד ל:

int main ()

{

int num1,num2

printf ("Please enter two numbers: \n");

scanf("%d\n", &num1);

scanf("%d\n", &num2);

printf ("The product is:%d\n",num1*num2);

return 0;

}

האם עכשיו זה בסדר ??

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

http://msdn.microsoft.com/en-us/library/kwwtf9ch%28VS.71%29.aspx

White-space characters: blank (' '); tab ('\t'); or newline ('\n'). A white-space character causes scanf to read, but not store, all consecutive white-space characters in the input up to the next non–white-space character. One white-space character in the format matches any number (including 0) and combination of white-space characters in the input.

כשאתה שם n\ בסוף ה-scanf, אז אחרי שהוא קורא את המספר הוא ממשיך לקרוא עד שהוא נתקל בקלט שהוא לא white-space (רווח, טאב או סוף שורה). כיוון שעדיין לא היה קלט כזה, הוא מחכה לו.

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

ארכיון

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

×
  • צור חדש...