اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

cerr در جریان‌

+1 امتیاز
656 نمایش

تو کدها، وقتی میخوان یک جریان رو باز کنن، دیدم که از همچین دستوری استفاده میکنن، هم برای فایل ورودی و هم خروجی!
کار این دستور چیه؟
و بیشتر سوالم اینه که اگه این دستور برای دادن پیغام خطاست، پس چرا تو کدهایی که من دیدم پیغامی که به عنوان خطا بده رو وارد میکنن؟
یعنی چرا اگه برای چاپ پیغام خطاس، از همون cout استفاده نمیکنن که پیغام خطا رو چاپ کنه؟
میدونم سوالم بیهوده س، ولی خب میخوام بدونم خصوصیت این دستور چیه دقیقن که اگه کار خاصی میکنه، پس آیا جاهای دیگه هم میشه ازش استفاده کرد؟

برنامه‌ای که تست نشده کار نخواهد کرد (Stroustrup, Bjarne)
پرسیده شده دوشنبه ۲۰ آذر ۱۳۹۱ در C++ توسط CPP_Crawler3  
بازتگ شده یکشنبه ۲۵ فروردین ۱۳۹۲ توسط admin

2 پاسخ

+1 امتیاز

cerr شیئی از کلاس ostream است که خطا در جریان رو نشان میدهد.
خطاهایی به این شکل که مثلا ممکن است باز کردن فايل با عدم موفقيت روبرو شود نظير: استفاده از نام فايل غير مجاز، موجود نبودن فايل روی ديسک يا مسير ذکر شده، نداشتن اجازه دسترسی و .... اگر بازکردن فايل موفق نباشد تابع مقدار NULL را برمی گرداند که توسط متدهای is_open يا fail بررسی می شود و برنامه بايد پيغام خطای مناسب را با cerr نمايش دهد.
بطور مثال:

if (!outfile.is_open()) {
   cerr << "Could not create file." << endl;
   exit(1);
   }
پاسخ داده شده سه شنبه ۱ اسفند ۱۳۹۱ توسط CPP_Crawler4  
0 امتیاز

cerr در ارتباط با جریان cstdio هست.
و بطور پیش فرض اکثر سیستم‌ها، خطای خروجی استاندارد رو به کنسول (جایی که پیغام‌ها نمایش داده میشه) میدن که این میتونه کاملا هدایت بشه و چون cerr شیئی از کلاس ostream هست، ما میتونیم توسط اون کاراکترهایی بنویسیم مثلا همونطور که با عملگر درج در جریان (>>ostream::operator) یا از طریق سایر دستورات توابع نوشتاری دیگه استفاده میکنیم.

پاسخ داده شده سه شنبه ۱ اسفند ۱۳۹۱ توسط CPP_Crawler5