PDA

View Full Version : تفاوت cerr,cout چیست؟



m-taheri
دوشنبه 09 شهریور 1388, 11:04 صبح
با سلام

چند تا سوال دارم از اساتید

1- تفاوت این دو چیست ؟


char a

1 - cout << (int) a;

2 - cout << static_cast <int> (a



2- تفاوت cout , cerr , clog , wcerr , wclog چیست؟



3- آیا کتاب فارسی مرجع برای آموزش windows applicatin برای vC++‎‎ وجود داره؟

clover
دوشنبه 09 شهریور 1388, 13:39 عصر
1- تفاوت این دو چیست ؟

تفاوت خاصی ندارند ، در دستور اول برای تبدیل نوع از عملگر قدیمی تر C ( تبدیل نوع صریح ) استفاده شده و در دستور دوم از عملگر تبدیل نوع جدید C .
ظاهرا ثابت شده که تبدیل نوع صریح روشی قدیمی ، غیر ایمن و مستعد خطاست . وقتی که برنامه خوانده می شود پیدا کردن این تبدیلات سخت است . به همین دلیل از تبدیل نوع جدید استفاده می شود که چهار نوع مختلف دارد که یکی از انواع آن هم static_cast است .


2- تفاوت cout , cerr , clog , wcerr , wclog چیست؟

تفاوت کدوم با کدوم ؟:اشتباه:
cout شئ خروجی استاندارد هست اما cerr شئ خروجی خطای استاندارد . ممکن است بپرسید cerr هم مثل cout عمل میکند پس به چه دردی می خورد ؟ اولا باید گفت که cerr دقیقا مثل cout عمل نمی کند و به نحوی برای خروجی خطا بهینه شده ( مثلا بافر شده نیست ) در ضمن به طور پیش فرض هر دو به کنسول متصل هستند اما ممکن است شما بخواهید خروجی خطا را به یک فایل یا هر وسیله ی دیگری متصل کنید . در کل شئ cerr برای راحتی کار و جداسازی و اداره خطا از خروجی استاندارد به کار می رود .
clog دقیقا همانند cerr است اما بافر شده .

wclog ، wcerr و wcout دقیقا مشابه همتاهای خودشون هستند با این تفاوت که با کاراکتر ها و رشته های یونیکد کار می کنند .

فکر می کنم پایه گذار سنت غلطی شدم ، چند روز پیش تاپیکی باز کردم با عنوان " چند سوال ... " که البته به من تذکر داده شد که سوالاتمو در تاپیک های جداگانه بپرسم . علتش رو هم توی این چند روز متوجه شدم . پیشنهاد می کنم برای گرفتن پاسخ های بهتر ، سوال ها را در تاپیک های جداگانه مطرح کنید .