Консольный ввод/вывод и форматирование

В консольных приложениях не обойтись без методов класса Console.
И главные из них: string Console.ReadLine() и void Console.WriteLine(). По сути мы можем вводить только строку, а для ввода числа необходимо преобразовать введенную строку в число соответствующего формата методами класса Convert.

Рассмотрим примеры стандартных действий:

// Подсказка - приглашение к диалогу
Console.Write("Ваше имя: ");
// Ввод строки
string name = Console.ReadLine();
// Приветствие + подсказка
Console.Write("Привет, " + name + "\nВведите Ваш рост в см: ");
// Ввод числа. Чтобы сразу получить число, используйте методы класса Convert
double height = Convert.ToDouble(Console.ReadLine())/100;
name = "Петр 1";
double height_P = 2.04;
if (height < height_P)
   Console.WriteLine(name + " был чуть выше Вас ростом!");
else
   Console.WriteLine("Не всякие императоры обладали высоким ростом!");
int a = 13;
// Составные строки из строковых констант, переменных и выражений
Console.WriteLine("Сторона квадрата: " + a + "  площадь: " + a * a);
Console.WriteLine("Имя: " + name + " Рост: " + height_P + " м");

Вывод через подстановку переменных в фигурные скобки

Console.WriteLine("Имя: {0} Рост: {1} м", name, height_P);

Использование интерполяции. Символ $ перед » … «. Добавлено в последних версиях языка, наиболее изящный способ вывода:

Console.WriteLine($"Имя: {name} Рост: {height_P} м");

Вывод чисел с округлением по формату и без:

double e = Math.E;  // Константа класса Math
Console.WriteLine("e = {0:0.0} | {1:0.00} | {2:0.000} | {3}", e, e, e, e);

Для форматирования целочисленных значений применяется описатель «d». Число после описателя указывает, сколько цифр будет в числовом значении. Если в исходном числе цифр меньше, то к нему добавляются нули.

int number = 314;
string result = String.Format("{0:d}", number);
Console.WriteLine(result); 
string result1 = String.Format("{0:d4}", number);
Console.WriteLine(result1);

Форматирование дробных чисел.
Для форматирования дробных чисел используется описатель F, число после которого указывает, сколько знаков будет использоваться после разделителя между целой и дробной частью. Если исходное число — целое, то к нему добавляются разделитель и нули.

int number2 = 23;
string result2 = String.Format("{0:f}", number2);
Console.WriteLine(result2); // 23,00
double number3 = 45.08;
string result3 = String.Format("{0:f4}", number3);
Console.WriteLine(result3); // 45,0800
double number4 = 25.07; // вывод с округлением
string result4 = String.Format("{0:f1}", number4);
Console.WriteLine(result4); // 25,1

Формат процентов. Описатель «P» задает отображение процентов. Используемый с ним числовой спецификатор указывает, сколько знаков будет после запятой:

decimal number5 = 0.314158m;
Console.WriteLine("{0:P1}", number5);

Настраиваемые форматы.
Используя знак #, можно настроить формат вывода. Например, нам надо вывести некоторое число в формате телефона +х (ххх)ххх-хх-хх:

long number6 = 19876543210;
string result6 = String.Format("{0:+# (###) ###-##-##}", number6);
Console.WriteLine(result6);

Метод ToString() не только получает строковое описание объекта, но и может осуществлять форматирование. Он поддерживает те же описатели, что используются в методе Format:

long number7 = 19876543210;
Console.WriteLine(number7.ToString("+# (###) ###-##-##"));// +1 (987) 654-32-10

Console.ReadKey();

Результат выполнения программы должен выглядеть так:

Ваше имя: Сергей
Привет, Сергей
Введите Ваш рост в см: 202
Петр 1 был чуть выше Вас ростом!
Сторона квадрата: 13  площадь: 169
Имя: Петр 1 Рост: 2,04 м
Имя: Петр 1 Рост: 2,04 м
Имя: Петр 1 Рост: 2,04 м
e = 2,7 | 2,72 | 2,718 | 2,71828182845905
314
0314
23,00
45,0800
25,1
31,4%
+1 (987) 654-32-10
+1 (987) 654-32-10

NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о

0 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x