עבור לתוכן

עזרה ב-++C

Featured Replies

פורסם

מה ההבדל בין cout ל-cerr ל-clog?

בתודה מראש

פורסם

cout, cerr ו-clog הם שלושה אובייקטים גלובאלים מסוג ostream (כלומר אובייקטי פלט של טקסט).

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

ב-cerr מדפיסים הודעות שגיאה - (כלומר, אם יש בעיה בריצת התוכנה, אז מדפיסים את השגיאה ל-cerr).

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

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

אני לא ממש יודע איך עושים את זה בחלונות, אבל ב-unix זה משהו כזה:

~> a.out > cout.txt & cerr.txt

(זה יריץ את התכנית a.out, את פלט cout ישמור לתוך cout.txt ואת פלט cerr ישמור לתוך cerr.txt)

חוץ מזה, יש עוד הבדל בין cerr ל-cout - הוא ש-cerr עושה flush (כותב את הטקסט המודפס) אחרי כל קריאה, ו-cout עושה את זה רק כל כמה זמן.

ארכיון

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

דיונים חדשים