cerr ، clog و cin در ++C

cerr و clog مشابه cout دو شئ تعريف شده در ostream هستند.

مثال. برنامه زير نشان می دهد چگونه cerr می تواند به جای cout بکار برود.

 

ساختن log از رويدادهای برنامه روش خوبی برای تعيين اشکالات آن است. log بعد از هر فراخوانی روی ديسک خالی می شود بنابراين اگر رويدادی باعث سقط برنامه شود بلافاصله بعد از سقط می توان log را مشاهده کرد.

cout و clog هردو خروجی را بافر می کنند يعنی ابتدا کل خروجی در بافر ذخيره می شود سپس همگی يکباره با هم به خروجی فرستاده می شود. cerr خروجی را بافر نمی کند و آنرا بلافاصله به دستگاه خروجی می فرستد.

اشکال مهم بافر کردن اين است که اگر برنامه سقط کند محتوای بافر از دست می رود و تشخيص علت سقط برنامه سخت تر می شود.

دستور cin در ++C

کلاس iostream امکان خواندن ورودی را هم فراهم می کنند. شئ مورد استفاده برای ورودی استاندارد cin است که ورودی را معمولا از کنسول می گيرد اما می تواند از منابع ديگر هم دريافت کند.

عملگری که همراه با cin استفاده می شود >> است که برای دريافت ورودی از نوع آرگومانش صبر می کند. مثلا اگر آرگومان صحيح باشد برای يک عدد صحيح از صفحه کليد منتظر می ماند.

مثال. برنامه زير يک عدد صحيح را دريافت کرده معادل اکتال و هگز آنرا نمايش می دهد.

 

برنامه دريافت دو عدد و محاسبه حاصل جمع وضرب آنها

پسورد : csharpoop.com

 

تابع cin متوجه نوع متغير می شود و داده ورودی را به نوع متناسب تبديل می کند.

مثال. برنامه زير تابع cin را برای خواندن سه عدد که با space از هم جدا می شوند استفاده می کند. بعد از وارد کردن مقادير بايد کليد enter را فشار داد.

 

اگر ۳ ۷٫۲ ۳ وارد شود خروجی به صورت “You entered 3 7.2 3” خواهد بود.

اگر ۳٫۷۶ ۵ ۸ وارد شود خروجی به صورت ” You entered 3 0.76 5″ می شود. چون نقطه مميز جز عدد صحيح نيست به عنوان شروع عدد اعشاری درنظرگرفته می شود و بقيه خط ورودی از بين می رود.

اگر ورودی به طور موفق تبديل نشود شئ cin يک بيت شکست را تنظيم می کند که قسمتی از ios است و توسط تابع fail() هم در cin و هم در cout به صورت زير قابل خواندن است.

 

برای صفحه نمايش روشن است که ()cout.fail بندرت ممکن است استفاده شود اما درفايل های I/O می تواند بکار برود.

برنامه گرفتن ورودی به صورت صحيح

پسورد : csharpoop.com

 

تابع ()good هم برای cin و cout وجود دارد.

cin بهترين دستور برای همه شرايط نيست اما ساده ترين را ه است. تابع get يک کاراکتر تکی صرفنظر از نوع را دريافت می کند.

تابع getline برای دريافت تعداد معينی کاراکتر است. اين تابع وقتی می خواهيد داده ای را درون آرايه ذخيره کنيد سودمند است. cin اجازه می دهد کاربر داده های بيشتری را در آرايه ذخيره کند که overloading نام دارد. توسط تابع getline تعداد بايت هايی که می خواهيد کاربر وارد کند را تعيين می کنيد. هرکاراکتر که کاربر تايپ می کند يک بايت فضا می برد. مثلا اگر برای تابع ۴بايت تعريف کنيد و کاربر کلمه Computer را وارد کند تنها Comp دريافت می شود.

مثال.

 

کليه ورودی هائی که با cin خوانده می شوند نياز دارند کليد Enter يا Return زده شود. در C++ استاندارد راهی برای خواندن مستقيم کليدها از صفحه کليد وجود ندارد. اما می توان از کتابخانه های ديگر استفاده کرد.

cerr ، clog و cin در ++C
5 (100%) 2 رایs

(335 نوشته)

C# Programmer , Web Design And Developer , MVC , ASP.NET

فکر شما چیست؟

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *

حاصل جمع اعداد را وارد کنید : *