3.2 Console.Read() metodi orqali o‘qish Read() metodi va ReadLine() metodidan ozgina farq qiladi. Aytish joizki u bir
belgini o‘qiydi, bo‘sh joygacha emas. Boshqa bir muhim farq shuki kod bo‘lsa ham
javob qaytarmaydi. Agar biz natijadan o‘zgaruvchi sifatida foydalanmoqchi bo‘lsak
biz uni belgiga almashtirishimiz kerak yoki Convert.ToChar() metodidan
foydalanamiz. Bu yerda juda muhim xususiyat bor: belgi [Enter] tugmasi bosilguncha
o‘qiladi. Konsoldan kiritilgan satr, satr kiritish standarti bufferiga ko‘chiriladi va
Read() metodi undagi birinchi belgini o‘qiydi. Agar buffer bo‘sh bo‘lmasa metodning
keyingi so‘rovlari uchun dastur natijasi to‘xtamasdan keyingi belgini buffer bo‘sh
bo‘lguncha o‘qishni davom etadi. Bundan keyin foydalanuvchi Read() metodini
kiritmaguncha dastur kutib turadi. Misol.
class
UsingRead
{
static
void
Main()
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
82
{
int
codeRead = 0;
do
{
codeRead =
Console
.Read();
if
(codeRead != 0)
{
Console
.Write((
char
)codeRead);
}
}
while
(codeRead != 10);
}
}
Bu dastur foydalanuvchi tomonidan kiritilgan 1-qatorni o‘qiydi va uni belgi
sifatida chop etadi. Biz shunga ahamiyat berishimiz kerakki Console.Read() metodi
Console.ReadLine() ga qaraganda amaliyotda kam qo‘llaniladi.bunga sabab
Console.Read() metodi bilan xatolar qilish ehtimoli mavjudligidadir.
3.3 Sonlarni o‘qish S# da sonlarni konsoldan to‘gridan to‘gri o‘qish hali mavjud emas.sonni
o‘qishimiz uchun biz kiritilgan sonni Konsole.ReadLine metodi orqali satr tipida o‘qib
olamiz va keyin uni son tipiga o‘tkazamiz.bu jarayon parsing deb ataladi.quyidagi
misol sonni o‘qib olishga va uni parse (o‘tkazish)ga berilgan.
class
ReadingNumbers
{
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
83
static
void
Main()
{
Console
.Write(
"a = "
);
int
a =
int
.Parse(
Console
.ReadLine());
Console
.Write(
"b = "
);
int
b =
int
.Parse(
Console
.ReadLine());
Console
.WriteLine(
"{0} + {1} = {2}"
, a, b, a + b);
Console
.WriteLine(
"{0} * {1} = {2}"
, a, b, a * b);
Console
.Write(
"f = "
);
double
f =
double
.Parse(
Console
.ReadLine());
Console
.WriteLine(
"{0} * {1} / {2} = {3}"
,
a, b, f, a * b / f);
}
}
Natijasi:
Bu misolda muhim narsa shuki biz Parse metodini sonlar uchun qo‘lladik.
Qachonki biz xato natija olsak natija System.FormatException ga yuboriladi. Bunday
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
84
jarayon haqiqiy sonlarni o‘qishda bo‘ladi. Chunki sonlar orasida chegara mavjudligi
va har bir kichik to‘plam uchun operatsion tizimda alohida muhit mavjudligidir.