چگونه در یک خط چند ورودی را در سیشارپ دریافت کنیم
در سیشارپ میتوان با استفاده از ()Console.ReadLine چند مقدار را در یک خط دریافت کرد و با ()Split آنها را از هم جدا کرد.
20 شهریور 1405
لینک کوتاه
چگونه در یک خط چند ورودی را در سیشارپ دریافت کنیم؟
در بسیاری از برنامههای کنسولی که با زبان #C (سیشارپ) نوشته میشوند، لازم است کاربر چند مقدار را بهصورت همزمان وارد کند.برای مثال ممکن است بخواهیم نام و نام خانوادگی، چند عدد، یا چند مقدار مختلف را در یک خط از کاربر دریافت کنیم.
در چنین شرایطی این سؤال مطرح میشود که چگونه در یک خط چند ورودی را در سیشارپ دریافت کنیم؟
در #C میتوان با استفاده از ()Console.ReadLine، متنی را که کاربر در یک خط وارد کرده دریافت کرد و سپس با متدهایی مانند ()Split آن را به چند مقدار جداگانه تبدیل کرد.
این روش یکی از سادهترین و پرکاربردترین تکنیکها برای دریافت چند ورودی در برنامههای کنسولی است.
دریافت چند ورودی در یک خط در #C
فرض کنید میخواهیم کاربر دو عدد را در یک خط وارد کند. برای مثال:10 20
میتوانیم ابتدا کل خط را دریافت کرده و سپس آن را بر اساس فاصله جدا کنیم:
string[] input = Console.ReadLine().Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
Console.WriteLine(a + b);
در این مثال، ()Console.ReadLine تمام ورودی کاربر را بهصورت یک رشته دریافت میکند. سپس ()Split رشته را بر اساس فاصله به چند بخش تقسیم میکند.
در نتیجه مقدار 10 در input[0] و مقدار 20 در input[1] قرار میگیرد.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
استفاده از Split برای چند ورودی
متد ()Split یکی از مهمترین ابزارها برای دریافت چند ورودی در یک خط در #C است. این متد میتواند رشته ورودی را بر اساس یک یا چند جداکننده به بخشهای مختلف تقسیم کند.
برای مثال:
string[] numbers = Console.ReadLine().Split();
foreach (string number in numbers)
{
Console.WriteLine(number);
}
اگر کاربر مقدار زیر را وارد کند:
10 20 30 40
برنامه چهار مقدار جداگانه خواهد داشت.
البته این مقادیر در ابتدا از نوع string هستند.
اگر بخواهیم روی آنها عملیات ریاضی انجام دهیم، باید آنها را به نوع عددی تبدیل کنیم.
تبدیل ورودی به عدد صحیح
برای دریافت چند عدد صحیح در یک خط، میتوان از ()int.Parse استفاده کرد:string[] input = Console.ReadLine().Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
int c = int.Parse(input[2]);
Console.WriteLine(a + b + c);
با وارد کردن:
5 10 15
خروجی برنامه برابر با موارد زیر خواهد بود:30
این روش برای تمرینهای برنامهنویسی، حل مسائل الگوریتمی و برنامههای ساده کنسولی بسیار کاربردی است.
روش کوتاهتر برای دریافت چند ورودی
در نسخههای جدیدتر #C میتوان کد را کوتاهتر نیز نوشت. برای مثال:int[] numbers = Console.ReadLine()
.Split()
.Select(int.Parse)
.ToArray();
در این روش، ورودی کاربر ابتدا با ()ReadLine دریافت میشود، سپس با ()Split جدا شده و در نهایت هر مقدار با int.Parse به عدد صحیح تبدیل میشود.
برای استفاده از Select معمولاً باید فضای نام مربوط به LINQ را در اختیار داشته باشید:
using System.Linq;
اگر کاربر وارد کند:
10 20 30 40
آرایه numbers شامل چهار عدد خواهد بود.
دریافت دو ورودی در یک خط به شکل ساده در سی شارپ
یکی از رایجترین سؤالات در آموزش #C این است که چگونه دو مقدار را در یک خط دریافت کنیم.برای مثال، فرض کنید میخواهیم سن و نمره یک دانشآموز را دریافت کنیم:
string[] input = Console.ReadLine().Split();
int age = int.Parse(input[0]);
double score = double.Parse(input[1]);
Console.WriteLine($"Age: {age}");
Console.WriteLine($"Score: {score}");
کاربر میتواند ورودی را به شکل زیر وارد کند:
20 18.5
در اینجا مقدار اول به int و مقدار دوم به double تبدیل میشود.دریافت چند رشته در یک خط
این تکنیک فقط برای اعداد کاربرد ندارد.اگر بخواهیم چند رشته را نیز در یک خط دریافت کنیم، میتوانیم مستقیماً از ()Split استفاده کنیم.
برای مثال:
string[] names = Console.ReadLine().Split();
Console.WriteLine(names[0]);
Console.WriteLine(names[1]);
اگر کاربر بنویسد:
Ali Reza
مقدار Ali در خانه اول و Reza در خانه دوم آرایه قرار میگیرد.این روش در برنامههایی که ورودیهای متنی دارند نیز بسیار کاربردی است.
استفاده از جداکننده متفاوت
در حالت پیشفرض، ()Split معمولاً برای جدا کردن بخشهای ورودی با فاصله استفاده میشود.اما میتوان جداکننده دیگری نیز مشخص کرد.
برای مثال، اگر ورودی به شکل زیر باشد:
10,20,30
میتوان از کاما بهعنوان جداکننده استفاده کرد:
string[] input = Console.ReadLine().Split(',');
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
int c = int.Parse(input[2]);
در این حالت، هر مقدار که بین دو کاما قرار گرفته باشد، بهعنوان یک ورودی جداگانه در نظر گرفته میشود.
دریافت تعداد نامشخصی ورودی در سی شارپ
یکی دیگر از کاربردهای مهم این روش، دریافت تعداد متغیری از ورودیهاست.برای مثال، ممکن است ندانیم کاربر چند عدد وارد خواهد کرد.
در این شرایط میتوان تمام ورودی را دریافت و به آرایه تبدیل کرد:
int[] numbers = Console.ReadLine()
.Split()
.Select(int.Parse)
.ToArray();
foreach (int number in numbers)
{
Console.WriteLine(number);
}
مزیت این روش این است که برنامه محدود به تعداد مشخصی ورودی نیست.
نکته مهم درباره Parse در سی شارپ
هنگام استفاده از ()int.Parse باید توجه داشته باشید که ورودی حتماً باید قابل تبدیل به عدد صحیح باشد.اگر کاربر بهجای عدد عبارتی مانند Hello وارد کند، برنامه با خطا مواجه میشود.
برای برنامههای ساده و تمرینهای الگوریتمی، Parse معمولاً کافی است؛ اما در برنامههای واقعی بهتر است ورودی کاربر اعتبارسنجی شود.
برای این کار میتوان از ()TryParse استفاده کرد:
if (int.TryParse(input[0], out int number))
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("ورودی نامعتبر است.");
}
این روش باعث میشود برنامه در برابر ورودیهای نامعتبر مقاومتر باشد.
دریافت چند ورودی در مسائل الگوریتمی
در سایتهای حل مسئله و مسابقات برنامهنویسی، معمولاً چند مقدار در یک خط به برنامه داده میشود.برای مثال ممکن است صورت سؤال اعلام کند که در خط اول دو عدد n و m قرار دارند.
در #C میتوان این ورودی را به شکل زیر دریافت کرد:
int[] input = Console.ReadLine()
.Split()
.Select(int.Parse)
.ToArray();
int n = input[0];
int m = input[1];
این الگو یکی از رایجترین روشها برای دریافت چند ورودی در یک خط در سیشارپ محسوب میشود و در حل مسائل الگوریتمی کاربرد فراوانی دارد.
جمعبندی
برای دریافت چند ورودی در یک خط در #C معمولاً کافی است ابتدا با ()Console.ReadLine کل خط را دریافت کنیم و سپس با ()Split آن را به بخشهای مختلف تقسیم کنیم.برای مثال، سادهترین حالت به شکل زیر است:
string[] input = Console.ReadLine().Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
اگر تعداد ورودیها بیشتر باشد، میتوان همین الگو را ادامه داد یا برای راحتی بیشتر از LINQ استفاده کرد:
int[] numbers = Console.ReadLine()
.Split()
.Select(int.Parse)
.ToArray();
بنابراین اگر در یک پروژه یا مسئله برنامهنویسی نیاز دارید چند مقدار را از یک خط دریافت کنید، ترکیب ()Console.ReadLine و ()Split یکی از سادهترین و کاربردیترین راهکارها در زبان #C است.




کاربران ما
شما هم نظرتون با ما دریاره “چگونه در یک خط چند ورودی را در سیشارپ دریافت کنیم” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید