o;Input прізвище );=Console.ReadLine () ;. WriteLine ( Input a );=Convert.ToInt32 (Console.ReadLine ()) ;. WriteLine ( Input c );=Convert.ToSingle (Console.ReadLine ()) ;. WriteLine ( Input i );=Convert.ToDouble (Console.ReadLine ()) ;. WriteLine ( Input l );=Convert.ToBoolean (Console.ReadLine ()) ;. Console.WriteLine ( Результати форматування n={0, 6}, l={1, 4} raquo ;, name, l) ;. Console. WriteLine ( a={0, 4}, c={1,10: f5},={2,20: e8} raquo ;, a, c, i) ;. Console.WriteLine ( ) ; .Console.WriteLine ( Для виходу натисніть на Enter ) ;. Console.ReadLine ();
}
Організація введення виведення з використанням файлів
співпрограмами виконують операції введення-виведення за допомогою потоків, які побудовані на ієрархії класів. Потік (stream) - це абстракція, яка генерує і приймає дані. За допомогою потоку можна читати дані з різних джерел (клавіатура, файл) і записувати в різні джерела (принтер, екран, файл). Незважаючи на те, що потоки зв'язуються з різними фізичними пристроями, характер поведінки всіх потоків однаковий. Тому класи і методи введення-виведення можна застосувати до багатьох типів пристроїв.
На найнижчому рівні ієрархії потоків введення-виведення знаходяться потоки, які оперують байтами. Це пояснюється тим, що багато пристрої при виконанні операцій введення-виведення орієнтовані на байти. Однак для людини звичніше оперувати символами, тому розроблені символьні потоки, які фактично являють собою оболонки, що виконують перетворення байтових потоків в символьні і навпаки. Крім цього, реалізовані потоки для роботи з int-, double-, short- значеннями, які також представляють оболонку для байтових потоків, але працюють не з самими значеннями, а з їх внутрішнім поданням у вигляді двійкових кодів.
Центральну частину потокової С # -системи займає клас Stream простору імен System.IO. Клас Stream представляє байтовий потік і є базовим для всіх інших потокових класів. Щоб створити символьний потік потрібно помістити об'єкт класу Stream (наприклад, FileStream) всередину ??raquo; об'єкта класу StreamWriter або об'єкта класу StreamReader. У цьому випадку байтовий потік буде автоматично перетворюватися в символьний.
Клас StreamWriter призначений для організації вихідного символьного потоку. Цей клас містить кілька конструкторів. Так, наприклад, створити екземпляр класу StreamWriter можна наступним чином: fileOut=new StreamWriter (new FileStream ( text.txt ,. Create, FileAccess.Write));
Ця версія конструктора дозволяє обмежити доступ тільки читанням або тільки записом: (string filename, FileMode mode, FileAccess how)
де:
1. параметри filename і mode мають те ж призначення, що і в попередній версії конструктора;
2. параметр how, визначає спосіб доступу до файлу і може приймати одне із значень, визначених перерахуванням FileAccess:
FileAccess.Read - тільки читання; .Write - тільки запис; .ReadWrite - і читання, і запис.
Інший вид конструктора дозволяє відкрити потік відразу через звернення до файлу: (string name),
де параметр name визначає ім'я файлу.
Наприклад, звернутися до даного конструктору можна наступним чином: fileOut=new StreamWriter ( c: temp t.txt );
І ще один варіант конструктора StreamWriter: (string name, bool appendFlag),
де параметр name визначає ім'я файлу; параметр appendFlag може приймати значення true - якщо потрібно додавати дані в кінець файлу, або false - якщо файл необхідно перезаписати. Наприклад: fileOut=new StreamWriter ( t.txt raquo ;, true);
Тепер для запису даних у потік fileOut можна звернутися до методу WriteLine. Це можна зробити наступним чином: .WriteLine ( test );
В даному випадку в кінець файлу t.txt буде дописано слово test.
Клас StreamReader призначений для організації вхідного символьного потоку. Один з його конструкторів виглядає наступним чином: (Stream stream),
де параметр stream визначає ім'я вже відкритого байтового потоку. Цей конструктор генерує виняток типу ArgumentException, якщо потік stream не відкритий для введення.
Наприклад, створити екземпляр класу StreamWriter можна наступним чином: fileIn=new StreamReader (new ( text.txt raquo ;, FileMode.Open, FileAccess.Read));
Як і у випадку з класом StreamWriter у класу StreamReader є й інший вид конструктора, який дозволяє відкрити файл безпосередньо: (string name);
де параметр name визначає ім'я файлу.
Звернутися до даного конструктору можна наступним чином: fileIn=new Strea...