שאלה על פלט ב c++

eblsst

New member
שאלה על פלט ב c++

שלום, בתוכנית שאני מבצע אני צריך להדפיס למסך תוצאות חישוב , ההדפסה נעשית בצורה הרגילה cout וכו'. הבעיה שלי היא כזאת: בגלל שיש לי בערך 100 תוצאות כאלו שאני צריך להוציא למסך , אני לא משתמש ב endl בסוף ההדפסה, (על מנת שאני אוכל לראות את כל התוצאות במסך אחד) וזה גרם לכך שהנתונים לא יוצאים אחד אחרי השני אלא במכה אחת (כנראה אחרי שה buffer מתמלא) רק מה , זה לוקח די הרבה זמן ובנתיים אני רוצה לראות אם התוצאות הראשונות שלי נכונות. האם אפשרי שאחרי כל שימוש ב cout , התוצאה תעלה מייד? כל שימוש ב flush לא עזר. בתודה מראש
 

eblsst

New member
משהו בסגנון

f1() { .. i=f2(...) //המון חישובים איטיים cout<<i; ... }​
איך אפשר לגרום להוצאת ה i בלי לרדת שורה ומבלי לחכות עד שה buffer יתמלא? תודה
 

DNile

New member
חלאס, לא נמאס לך?

עד מתי צעירים יעלוזו? מתי כבר תבינו שC++ הוא האל האמיתי, וכי C כבר מזמן חלף זמנו?
 

annefan

New member
prinft הוא לא חלק מ-C

אבל printf הוא דווקא כן.
 

voguemaster

New member
תלוי

לא אוהב את השימוש ב-manipulators כדי לקבוע את הפורמט, זה איטי יותר משמעותית ומסורבל. אומנם זה type safe אבל זה משמעותית פחות יעיל.
 

eyalbd

New member
נסה את זה

צריך להוסיף flush בכל הדפסה. אצלי זה עבד והיה הבדל עם או בלי flush
f1() { .. i=f2(...) //המון חישובים איטיים cout<< i << flush; ... }​
 

eblsst

New member
זה עזר. המון ../images/Emo51.gif ../images/Emo24.gif

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

Zack DA

New member
למען הדיוק

יש בעיה עם האובייקט COUT בכל מה שקשור להדפסה בלי Endl בסוף. לכן, אם רוצים להדפיס טקסט בלי endl, אפשר לקרוא ל- COUT ולהוסיף אח"כ את הפקודה
Cout.flush()​
 

eyalbd

New member
זה בדיוק מה ש flush עושה

למשל:
ostream& my_flush(ostream& os) { os.flush(); return os; } THEN: cout << n << my_flush;​
זה מה ש- flush הסטנדרטי עושה רק ששם זה template.
 
למעלה