سلام دوباره ?? امشب با قسمت۲ یعنی جریان خروجی برگشتیم، توی این قسمت میخوایم جریان خروجی رو یادبگیریم که اصلا داستانش چیه و از چه قراره؟!
قبل از شروع آموزش فقط اینو بگم که اگه قسمت قبلی رو خونده باشید بعضی از قسمت های این مطلب یکم براتون تکراریه
قبل از شروع کدهای پایه و تابع main رو که تو قسمت قبل باهاشون آشنا شدیم رو مینویسیم.
#include <iostream> using namespace std; int main() { return 0; }
همونطور که از اسمش پیداست قراره خروجی مارو برامون مدیریت کنه پس میشه گفت جریان خروجی درواقع باعث این میشه که ما نتایج محاسبات و حالا هرکاری که کردیم توی برناممون رو به کاربر نشون بدیم - همون echo/print خودمون - برای این عمل در c++ ما از یه تابع به اسم cout استفاده میکنیم.
نکته: تابع cout به هدر فایل iostream نیاز داره و بدون اون با مشکل مواجه میشید.
نگارش تابع cout هم به صورت زیر هست:
cout << [content] ;
خوب شاید الان براتون این سوال پیش اومده باشه که این دوتا ( >> ) کاربردشون چیه؟؟ درواقع کارشون اینه که محتواها رو به صورت متوالی به هم میچسبونن تا درپایان با cout روی صفحه چاپ شن.
cout << [content1] << [content2] << [content3] << [content4] ;
نکته: توی اکثر زبان های برنامه نویسی گذاشتن ( ; ) در آخر هر دستور اجباریه و سی پلاسپلاس هم از این قاعده مستثنا نیست.
خوب بریم سراغ یه مثال عملی، ما میخوایم رشته Hello World! رو روی صفحه چاپ کنیم:
cout << "Hello World!" ;
خروجی این دستور به شکل زیر است.
Hello World!
و یا این رشته
cout << "Hello i`m ali, i have blog on virgol." ;
و خروجیش :
Hello i`m ali, i have blog on virgol.
خوب ما میتونیم همین رشته رو اینطوری هم بنویسیم که خروجیش هیچ فرقی نداره:
cout << "Hello i`m " << "ali, i have blog on " << "virgol." ;
خروجیش دقیقا همون قبلیه.
اینجا قضیش در مورد رشتهها یه مقدار متفاوته، شما توی کتیشن ( ' ' ) حق ندارید بیشاز یک تَک حرف بنویسید، به عنوان مثال نمیتونید توش کلمه یا جمله ای بنویسید و برای این کار لازمه که از دَبلکتیشن ( " " ) - دابلکتیشن یا دوبلکتیشن یا دُبلکتیشن و تلفظ های ممکن دیگر - استفاده کنید. مثال زیر رو بینید:
cout << 'Hello World!' ;
این کد غلط - اشتباه - هست و باید به صورت زیر نوشته بشه:
cout << "Hello World!" ;
این کدها هم هر دو درست هستن و کامپایلر باهاشون مشکلی نداره:
cout << "A" ; cout << 'A' ;
خوب بریم سراغ چیزهای باحالی که میتونند توی مثالهای بالا تغییراتی رو ایجاد کنن.
شما برای رفتن به خط بعد در خروجی میتونید از تابع endl استفاده کنید، برای مثال:
cout << "Hello World!"; endl(cout); cout << "this is virgol.";
کد زیر به این صورت چاپ میشه:
Hello World! this is virgol.
و البته میتونیم به این صورت توی خود cout هم ازش استفاده کنیم:
cout << "Hello World!" << endl << "this is virgol.";
یا به این صورت
cout << "Hello World!" << endl; cout << "this is virgol.";
توابع از این نوع دیگهای هم هست که با یه سرچ ساده تو نت میتونید گیر بیاریدشون.
فقط یه چیز یادتون باشه که بعضیاشون نیاز به هدر فایل خاصی دارن که بدون اون کار نمیکنن
اسکیپ کدها یه قراردادن بین زبان و کامپایلر یعنی یه ترکیباتی هستن که اگه توی جمله ازشون استفاده کنیم به همون صورت چاپ نمیشه و باعث میشه یه اتفاقی بیفته برای مثال اسکیپ کد ( \n ) عملی مشابه تابع endl رو انجام میده یعنی ادامه رشتهرو به خط بعد میفرسته.
مثال:
cout << "Hello World!\nthis is virgol.";
خروجی کد بالا به این شکل است:
Hello World! this is virgol.
نکته: اگر اسکیپ کد به حروف قبل و یا بعدش بچسبه مشکلی پیش نمیاد، به مثال بالا دقت کنید میبینید که World به /n و /n هم به this چسبیده و بینشون فاصله نیست ولی تو خروجی درست عمل میشه!
چندتا از اسکیپ کدهای دیگرو براتون این زیر مینویسم:
Carriage retuen ------> /r
Backspace ------> /b
Single quotation mark ------> /'
Form feed ------> /f
Bell (alert) ------> /a
اسکیپ کدهای دیگهای هم هست که میتونید توی اینترنت پیدا کنید.
اما حالا یه مشکلی شاید پیش بیاد خوب شاید من بخوام توی رشتم دقیقا عین ( hi /flany ) رو بنویسم و بکاسلش هم بیفته - شایدم اسلشه من هنوز فرقشون رو نمیدونم ? - خوب قطعا من برام مشکل پیش میاد چون با این رشته
cout << "hi /flany.";
این توی صفحه چاپ میشه:
hi lany.
برای جلوگیری از این مشکل فقط لازمه که از یه بکاسلش اضافی استفاده کنیم یعنی:
cout << "hi //flany.";
که خروجیش به این صورت میشه:
hi /flany.
خوب این قسمت هم اینجا به پایان رسید. اگر غلط املایی یا چیزی هم بود به بزرگی خودتون ببخشید.
لایک یادتون نره و از کامنتاتونم محرومم نکنید. ❤️
? تمرینم یادتون نره
شاد باشید ❤️