Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИДПО_ИИИС / Лекция 6.docx
Скачиваний:
52
Добавлен:
19.05.2015
Размер:
126.8 Кб
Скачать

Организация консольного ввода-вывода в c#

Для организации ввода-вывода в C# предусмотрен класс System.Console. Он же предназначен для вывода сообщений об ошибках. Естественно, что этот класс чаще применяется в консольных приложениях. Системную консоль иногда называют командной строкой.

Основными методами класса являются WriteLine() и Write(). В отличие от метода Write() метод WriteLine() добавляет в конец строки символ новой строки \n автоматически. Метод ReadLine() позволяет считывать информацию с системной консоли до ближайшего символа \n, метод Read() считывает с системной консоли единственный символ.

  • Создайте консольное приложение с именем Test

  • Измените имя исходного файла на App.cs

  • Измените пространство имен на Test, а имя класса на BasicIO

  • Уберите аргументы у функции Main()

  • Заполните метод Main() следующим кодом

using System;

namespace Test

{

class BasicIO

{

static void Main()

{

// Тестируем пользователя

string name;

Console.Write("Введите Ваше имя: ");

name = Console.ReadLine(); // Читаем ввод после нажатия Enter

string age;

Console.Write("Введите Ваш возраст (лет): ");

age = Console.ReadLine(); // Читаем ввод после нажатия Enter

// Выводим полученную информацию на консоль

Console.WriteLine("\nПривет, дорогой {0}!

Вам {1} лет.", name, age);

while(true);

}

}

}

Листинг 20.30 . Использование методов класса консольного ввода/вывода

Результаты экрана

Введите Ваше имя: Снетков В.М.

Введите Ваш возраст (лет): 55

Привет, дорогой Снетков В.М.! Вам 55 лет.

  • Нажмите комбинацию клавиш Ctrl-C или Ctrl-Break, чтобы прервать работу приложения, зацикленного на бесконечном выполнении предложения while(true);

Средства форматирования строк в C#

В C++ в консольном выводе функции prinf() применяются спецификаторы форматирования %d, %s, %c и т.д. в отдельности для каждого встроенного типа данных. В C# в консольном выводе функций Console.Write() и Console.Writeln() применяются универсальные индексированные метки {0}, {1}, {2}, и т.д., содержащие порядковый номер выводимого параметра в списке параметров. Эти подстановочные выражения обозначают знакоместа ( placeholder ), куда будет выводиться значение соответствующего параметра из списка.

Знакоместо должно начинаться открывающей фигурной скобкой, а завершаться закрывающей {}. Чтобы отобразить содержащиеся в строке форматирования фигурные скобки на дисплее, их следует указать парно {{ или }}. Аналогично, чтобы вывести на дисплей символ обратной косой черты, его нужно заэкранировать в строке форматирования вторым таким же символом.

Параметры форматирования можно применять и для массивов. При этом подстановочные выражения будут указывать на элементы этого массива.

В подстановочном выражении можно указывать и более точные настройки формата с помощью дополнительных параметров форматирования. Параметры форматирования приведены в таблице, причем их можно указывать как строчными так и прописными буквами.

Таблица 20.6 . Параметры форматирования C#

Параметр

Значение

C, c

Используется для вывода значений в денежном ( Currency ) формате. По умолчанию перед выводимым значением подставляется символ доллара ($), хотя можно отменить подстановку этого символа при помощи объекта NumberFormatInfo.

D, d

Используется для вывода целых десятичных значений ( Decimal ). После этого символа можно указать количество значащих цифр.

E, e

Для вывода значений в экспоненциальном формате ( Scientific ).

F, f

Вывод значений с фиксированной точкой ( Fixed-point ).

G, g

Общий ( General ) формат.Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате.

N, n

Стандартное числовое форматирование ( Number ) с использованием разделителей (пробелов или запятых) между разрядами.

X, x

Вывод значений в шестнадцатеричном формате ( Hexadecimal ). Если использовать заглавную X, то символы в шестнадцатеричном формате также будут заглавными.

R, r

Округление ( Round-trip )

Символы форматирования следуют в индексированных знакоместах сразу за номером подставляемого параметра через двоеточие:

{0:C}, {1:d}, {2:X} и т.д.

Параметры форматирования можно использовать для формирования любых символьных строк с использованием статического метода String.Format().

  • Измените консольное приложение с именем Test, заполнив метод Main() следующим кодом

using System;

namespace Test

{

class BasicIO

{

static void Main()

{

// Форматирование без параметров

string theString = "Привет всем!";

int theInt = 15;

float theFloat = 9.99F;

double theDouble = 123.456789;

BasicIO theClass = new BasicIO();

// Вывод

Console.WriteLine("Без параметров форматирования:");

Console.WriteLine("string: {0}\nint: {1}\nfloat:

{2}\ndouble: {3}\nobject: {4}"

, theString, theInt, theFloat, theDouble, theClass);

Console.Write("\n\n");

// Форматирование массива

object[] array = {"Привет!", 20.9, 1,

"55", Math.PI};

Console.WriteLine("Элементы массива:\n{0}; {1};

{2}; {3}; {4}", array);

Console.Write("\n\n");

// Форматирование с параметрами

Console.WriteLine("С параметрами форматирования:");

Console.WriteLine("C format: {0:C}", 99989.987);

Console.WriteLine("D9 format: {0:D9}", 99999);

Console.WriteLine("E format: {0:E}", .31415926538 * 10);

Console.WriteLine("F format: {0:F3}", 55555.6666);

Console.WriteLine("N format: {0:N}", 99999);

Console.WriteLine("X format: {0:X}", 99999);

Console.WriteLine("x format: {0:x}", 99999);

Console.Write("\n\n");

// Предварительное форматирование в символьную строку

string str;

str = String.Format("C format: {0:C}", 99989.987);

Console.WriteLine("Предварительное

форматирование в символьную строку:");

Console.WriteLine(str);

// Аналогично, с предварительным форматированием...

str = "ФИО: {{ {0} }}, Возраст: {{ {1} }}";

str = String.Format(str, "Снетков В.М.", 55);

Console.WriteLine("\n\nПредварительное

форматирование в символьную строку:");

Console.WriteLine(str);

while(true);

}

}

}

Листинг 6 . Иллюстрация способов форматирования консольного вывода

Результат форматирования вывода

Без параметров форматирования:

string: Привет всем!

int: 15

float: 9,99

double: 123,456789

object: Test.BasicIO

Элементы массива:

Привет!; 20,9; 1; 55; 3,14159265358979

С параметрами форматирования:

C format: 99 989,99р.

D9 format: 000099999

E format: 3,141593E+000

F format: 55555,667

N format: 99 999,00

X format: 1869F

x format: 1869f

Предварительное форматирование в символьную строку:

C format: 99 989,99р.

Предварительное форматирование в символьную строку:

ФИО: { Снетков В.М. }, Возраст: { 55 }

Соседние файлы в папке ИДПО_ИИИС