Advertisement
Panglot

Lesson 4 - Console Input Output

Mar 17th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.68 KB | None | 0 0
  1. using System;
  2. class InOut
  3. {
  4.     static void Main()
  5.     {
  6.         //Освен \n съществува и \r, което добавя нов ред и отива в началото му
  7.  
  8.         //Placehold-ерите могат да бъдат използвани за редактиране на текст.
  9.         // {index [, alignment][:formatString] } - нещата в квадратните скоби могат да присъстват или да не присъстват.
  10.         // index е номера на placehold-ера. {0} използвахме го само в този му вид до сега.
  11.         // alignment  е подравняване на текста. Замества се с цифра. Големината на цифрата означава колко място ще заделим за
  12.         // текста който ще бъде заместен. Положителна цифра означава подравняване в дясно, отрицателна - подравняване в ляво.
  13.         // Полезно е за създаване на таблици.
  14.         Console.WriteLine("{0,-10} | {1,10}", "Product", "Prise");
  15.         Console.WriteLine();
  16.         Console.WriteLine("{0,-10} | {1,10}", "Coca-Cola", 1.19);
  17.         Console.WriteLine("{0,-10} | {1,10}", "Fanta", 1.25);
  18.         //formatString - отговаря за форматирането на текста който ще бъде заместен.
  19.         //Полезни аргументи за форматиране на текста в Placehold-ер. Взимаме за пример числото 3.6543210
  20.         double placeholder = 3.6543210;
  21.         Console.WriteLine();
  22.         Console.WriteLine("Taking the number 3.6543210 for the placeholder");
  23.         //{0:0} взима цялото число и закръгля нагоре.
  24.         Console.WriteLine("Placeholder {{0:0}}, result: {0:0}", placeholder);
  25.         //{0:00} добавяне на допълнително число от ляво ако числото е по-малко от двуцифрено в случая. Колкото и каквито
  26.         //цифри добавим във мястото след двуеточието в Placeholder-а толкова и такива цифри ще бъдат добавени
  27.         Console.WriteLine("Placeholder {{0:00}}, result: {0:00}", placeholder);
  28.         Console.WriteLine("Placeholder {{0:300}}, result: {0:300}", placeholder);
  29.         //{0:0.0} взима цялото число и една цифра след десетичната запетая закгръглено нагоре,
  30.         //{0:0.00} взима две цифри след десетичната запетая и така нататък.
  31.         Console.WriteLine("Placeholder {{0:0.0}}, result: {0:0.0}", placeholder);
  32.         Console.WriteLine("Placeholder {{0:0.000}}, result: {0:0.000}", placeholder);
  33.         //{0:My number is 0.0} вмъква текст преди числото.
  34.         Console.WriteLine("Placeholder {{0:My number is 0.0}}, result: {0:My number is 0.0}", placeholder);
  35.         //{0:P} представя числото в проценти.
  36.         Console.WriteLine("Placeholder {{0:P}}, result: {0:P}", placeholder);
  37.         //{0:E} представя числото в експоненциал.
  38.         Console.WriteLine("Placeholder {{0:E}}, result: {0:E}", placeholder);
  39.         //{0:C} представя числото като валута спрямо регионалните настройки.
  40.         Console.WriteLine("Placeholder {{0:C}}, result: {0:C}", placeholder);
  41.         //{0:X} представя числото в шеснадесетична бройна система.
  42.         int PH = 250;
  43.         Console.WriteLine("The number for the place holder changed to int = 250");
  44.         Console.WriteLine("Placeholder {{0:X}}, result: {0:X}",PH);
  45.         Console.WriteLine();
  46.         //Всички тези аргументи за форматиране могат да бъдат комбинирани стига да не се застъпват един с друг.
  47.  
  48.         //Console.Read() чете един char, Console.ReadLine() чете един ред с други думи един цял string.
  49.         //В крайна сметка се оказа, че няма друг начин за взимане на цифрови стойности от клавиатурата освен Parse-ване.
  50.         //Parse се използва за конвертиране от стринг към другите типове. Почти всички типове имат член функция Parse.
  51.  
  52.  
  53.  
  54.         //Console.ReadKey() чете комбинация от натиснати клавиши от клавиатурата.
  55.         //За използването ще ни трябва и класа ConsoleKeyInfo.
  56.         ConsoleKeyInfo key = Console.ReadKey();
  57.         Console.WriteLine();
  58.         Console.WriteLine("Character entered: " +key.KeyChar);
  59.         Console.WriteLine("Special keys: "+key.Modifiers);
  60.         Console.WriteLine("Key absolute value: "+key.Key);
  61.         Console.WriteLine();
  62.         //Конвертиране на string към числа може да бъде извършено освен с Parse и със
  63.         //Convert класа. За float: Convert.ToSingle(string), за int има 2 различни conversion-а.
  64.         //Към int32 и int64. Convert.ToInt64(string), Convert.ToInt32(string [,base]).
  65.         //Като към 32 битовото конвертиране base е опция за трансформиране на числото към друга бройна
  66.         // система както видяхме и предишния урок.
  67.  
  68.         //За справяне се error-и беше споменат try-catch блока, но не беше обяснен подробно.
  69.         //За справяне конкретно с некоректни данни с Parse беше представено TryParse.
  70.         //Синтаксиса е int(или друг тип).TryParse(string, out number). TryParse се опитва да
  71.         //parse-не подаденият му string в подадения му number. Ако успее го прави и връща true, ако не успее
  72.         //връща false и не parse-ва нищо. Както при Parse, TryParse го има за почти всички типове.
  73.  
  74.         string str = Console.ReadLine();
  75.         int n;
  76.         if (int.TryParse(str, out n))
  77.             Console.WriteLine("Valid number: {0}", n);
  78.         else
  79.             Console.WriteLine("Invalid number: {0}",str);
  80.         Console.WriteLine();
  81.  
  82.  
  83.         //Оказва се, че изкарването на специални знаци на конзолата изисква малко повече работа.
  84.         //using Syste.Text; Console.OutputEncoding=Encoding.UTF8; Се изискват за изкарването на специални знаци
  85.         //Също така конзолата не работи коректно с цялата Unicode таблица.
  86.  
  87.         //Различните езици имат различни значи за десетичен разделител. При нас е десетична запетая, но при
  88.         //много култури е точка. За да използваме настоящите регионални настройки за валута и десетичен разделител
  89.         //трябва да добавим Thread.CurrentThread.CurrentCulture=CultureInfo.InvariantCulture;
  90.  
  91.  
  92.  
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement