کاراکترهای کنترلی
کاراکترهای کنترلی کاراکترهای ترکیبی هستند که با یک بک اسلش (\) شروع میشوند و به دنبال آنها یک حرف یا عدد میآید و یک رشته را با فرمت خاص نمایش میدهند. برای مثال برای ایجاد یک خط جدید و قرار دادن رشته در آن میتوان از کاراکتر کنترلی \n استفاده کرد :
System.Console.WriteLine("Hello\nWorld!");
Hello World
مشاهده کردید که کامپایلر بعد از مواجهه با کاراکتر کنترلی \n نشانگر ماوس را به خط بعد برده و بقیه رشته را در خط بعد نمایش میدهد. متد WriteLine() هم مانند کاراکتر کنترلی \n یک خط جدید ایجاد میکند، البته بدین صورت که در انتهای رشته یک کاراکتر کنترلی \n اضافه میکند :
System.Console.WriteLine("Hello World!");
کد بالا و کد زیر هیچ فرقی با هم ندارند :
System.Console.Write("Hello World!\n");
متد Write() کارکردی شبیه به WriteLine() دارد با این تفاوت که نشانگر ماوس را در همان خط نگه میدارد و خط جدید ایجاد نمیکند. جدول زیر لیست کاراکترهای کنترلی و کارکرد آنها را نشان میدهد :
کاراکتر کنترلی | عملکرد | کاراکتر کنترلی | عملکرد |
\’ | چاپ کوتیشن | \f | Form Feed |
\” | چاپ دابل کوتیشن | \n | خط جدید |
\\ | چاپ بک اسلش | \r | سر سطر رفتن |
\0 | چاپ فضای خالی | \t | حرکت به صورت افقی |
\a | صدای بیپ | \v | حرکت به صورت عمودی |
\b | حرکت به عقب | \u | چاپ کاراکتر یونیکد |
ما برای استفاده از کاراکترهای کنترلی از بک اسلش (\) استفاده میکنیم. از آنجاییکه \ معنای خاصی به رشتهها میدهد برای چاپ بک اسلش (\) باید از (\\) استفاده کنیم :
System.Console.WriteLine("We can print a \\ by using the \\\\ escape sequence.");
We can print a \ by using the \\ escape sequence.
یکی از موارد استفاده از \\، نشان دادن مسیر یک فایل در ویندوز است :
System.Console.WriteLine("C:\\Program Files\\Some Directory\\SomeFile.txt");
C:\Program Files\Some Directory\SomeFile.txt
از آنجاییکه از دابل کوتیشن (“) برای نشان دادن رشتهها استفاده میکنیم برای چاپ آن از \” استفاده میکنیم :
System.Console.WriteLine("I said, \"Motivate yourself!\".");
I said, "Motivate yourself!".
همچنین برای چاپ کوتیشن (‘) از \’ استفاده میکنیم :
System.Console.WriteLine("The programmer\'s heaven.");
The programmer's heaven.
برای ایجاد فاصله بین حروف یا کلمات از \t استفاده میشود :
System.Console.WriteLine("Left\tRight");
Left Right
هر تعداد کاراکتر که بعد از کاراکتر کنترلی \r بیایند به اول سطر منتقل و جایگزین کاراکترهای موجود میشوند :
System.Console.WriteLine("Mitten\rK");
Kitten
مثلاً در مثال بالا کاراکتر K بعد از کاراکتر کنترلی \r آمده است. کاراکتر کنترلی حرف K را به ابتدای سطر برده و جایگزین حرف M میکند. برای چاپ کاراکترهای یونیکد میتوان از \u استفاده کرد. برای استفاده از \u، مقدار در مبنای 16 کاراکتر را درست بعد از علامت \u قرار میدهیم. برای مثال اگر بخواهیم علامت کپی رایت (©) را چاپ کنیم، باید بعد از علامت \u مقدار 00A9 را قرار دهیم مانند :
System.Console.WriteLine("\u00A9");
©
برای مشاهده لیست مقادیر مبنای 16 برای کاراکترهای یونیکد به لینک زیر مراجعه نمایید :
اگر کامپایلر به یک کاراکتر کنترلی غیر مجاز برخورد کند، برنامه پیغام خطا میدهد. بیشترین خطا زمانی اتفاق می افتد که برنامه نویس برای چاپ اسلش (\) از \\ استفاده میکند. برای دریافت اطلاعات بیشتر در مورد کاراکترهای کنترلی به لینک زیر مراجعه کنید :
سلام
وقت شما بخیر
برای من مشکلی پیش اومده که راجع بهش خیلی گوگل کردم ولی راه حل مناسبی پیدا نکردم. ممنون میشم راهنمایی بفرمایین.
من محتوای یک سایت رو دریافت میکنم که ساختارش به صورت جیسون هست ولی وقتی میخام دسریالایزش کنم به جای علامت ” علامت “\ رو در نظر میگیره و طبیعتا دیگه نمیتونم دسریالایز کنم. ایا راهی برای حل این مشکل هست؟
سلام
ممنون که جواب دادین
ولی اگه بخوایم یه آکولاد چاپ بشه چی؟ چون این حالت فقط برای دو تا آکولاد هست
از کد اسکی آکولاد استفاده کنید. کد اسکیش 123 هست:
خروجی
سلام ببخشید میخواستم از بوراکس یا براکس تو متن استفاده کنم
میخوام از براکس هم تو متن استفاده بشه هم متغیر بهش بگیره
ولی نمیشه ، بک اسلش هارو هم تست کردم
سلام…اگه منظورتون اینه که آکولاد هم چاپ بشه می تونید از قابلیت string interpolation در سی شارپ 6 به صورت زیر استفاده کنید
یا
خروجی
اگه نه نمی خواین خود آکولاد چاپ بشه
مم کتاب سی شارپ شما رو خریدم
یه جایی درمورد مبنای 16، و یونیکد نوشته بودین ،میشه بیشتر توضیح بدین چی هستن اینا
اینا رو لازم نیست بدونید هر چند مثال آخر همین درس در مورد یونیکده ولی واسه تکمیل اطلاعاتتون لینک زیر رو ببیند
https://www.tutorialspoint.com/csharp/csharp_character_escapes.htm
سلام چطور میشه از اینتر خوردن و اسپیس جلوگیری کرد؟
سوالتونو تو بخش پرسش و پاسخ مطرح بفرمایید
w3-farsi.com/forum
اونم به طور کامل.. مثلا در حین نوشتن تو محیط کنسول یا تو تکس باکس و …
سلام
برام ي سلام پيش اومده،در سي شارپ ميخوام برنامه اي بنويسم ك يك آرايه رو بگيرد و ب صورت عمودي چاپ كند
سلام ، اول از هر چیز ممنون میشم از این به بعد سوالاتتونو رو تو بخش پرسش و پاسخ مطرح بفرمایید که لینکش بالای سایت هست. سوالتون یه کم گنگه، آیا میخواین از کاربر ورودی بگیرین و توی آرایه بریزین؟
متد ()WriteLine اینکار رو واستون انجام میده
با سپاس فراوان
یک سوال برام پیش امد این”\t” را چطور میشه کنترل کرد که مصلا اگر 8کاراکتر فاصله می ندازه این فاصله کمتر یا بیشتر بشه؟!!
سلام دوست عزیز، مقدار فاصله که “\t” ایجاد می کنه ثابته وقابل تغییر نیست، اما اگه خواستید فاصله غیر از اون مقدار ایجاد کنید می تونید بین “” ها به مقدار لازمتون فاصله بزنید و به دستور چاپ اضافه کنید،
مثلا:
” ” سه کاراکترفاصله ،و ” “یک کاراکتر فاصله، ایجاد می کنه و…
ممنون
با این حساب اگر اشتراک VIP نباشیم فقط یک قسمت اول از مطالب سایت را میتوان خواند و از یک جا به بعد دیگه نیاز به اشتراک هست.درسته؟
خواهش می کنم،بله درسته، بنده از هر مبحث 5-10 مطلب رو رایگان گذاشتم تا کاربرا چشم و گوش بسته پول پرداخت نکنن و اول کیفیت آموزش رو ببینن و اگه دوس داشتن عضو بشن
سلام
خسته نباشید خیلی ممنون از مطالب آموزشی خوبی که قرار دادید
من مطالب را دنبال کردم اما از اینجا به بعد را دسترسی ندارم؟؟ گویا فقط تا اینجا را یک عضو عادی بهش دسترسی دارد و از اینجا به بعد باید حق عضویت پرداخت کند
در حالی که من داخل سایت خوندم که کل مطالب را دسترسی دارید مگر گرفتن فیلم وpdfهاگویا که باید حق عضئیت پرداخت بشه
من اشتباه متوجه شدم یا اشکالی در سایت هست
ممنون
سلام، مرسی، خیلی لطف دارین
اشتباه متوجه شدین. یکی از دوستان پرسیدن که اگه حق عضویت پرداخت کنیم، به ویدئو های بخش فروشگاه هم دسترسی داریم یا نه؟ که بنده عرض کردم اشتراک VIP فقط برای خوندن مطالب سایت هست و شامل فروشگاه نمیشه.