Формат | Тип формата | Смысл параметра m |
C | Денежный; по умолчанию ставит знак «р.» | Задается количество десятичных разрядов, по умолчанию 2 |
D | Целочисленный – используется только с целыми числами | Задается минимальное количество цифр, при необходимости к результату сначала дописываются нули |
E | Экспоненциальное представление чисел (инженерный формат) | Задается количество разрядов после запятой, по умолчанию 6 |
F | Представление чисел с фиксированной точкой | Задается количество разрядов после запятой, по умолчанию 2 |
G | Общий формат | Задается количество разрядов на все число |
N | Стандартное форматирование с использованием запятых и пробелов в качестве разделителей между разрядами | Задается количество разрядов после запятой, по умолчанию 2 |
X | Шестнадцатеричный формат | Задается минимальное количество разрядов, при необходимости к результату сначала дописываются нули |
P | Процентный (к результату приписывается знак %) | Задается количество разрядов после запятой, по умолчанию 2 |
Пример (в нем используются различные варианты форматного вывода):
Console.WriteLine(" C Format:{0,14:C}\t{0,10:C0}\t{0,14:C3}", 1234.5);
Console.WriteLine(" D Format:{0,14:D}\t{0,10:D2}\t{0,14:D5}", 1234);
Console.WriteLine(" E Format:{0,14:E}\t{0,10:E2}\t{0,14:E7}", 1234.567);
Console.WriteLine(" F Format:{0,14:F}\t{0,10:F1}\t{0,14:F4}", 1234.567);
Console.WriteLine(" G Format:{0,14:G}\t{0,10:G2}\t{0,14:G5}", 1234.567);
Console.WriteLine(" N Format:{0,14:N}\t{0,10:N1}\t{0,14:N4}", 1234.567);
Console.WriteLine(" X Format:{0,14:X}\t{0,10:X1}\t{0,14:X3}", 123);
Console.WriteLine(" P Format:{0,14:P}\t{0,10:P0}\t{0,14:P3}", 0.1);
На экране выводится следующая информация:
Ввод данных
Для ввода данных класс Console предоставляет три метода: ReadLine (), Read () и ReadKey ().
Метод ReadKey () считывает один символ или обрабатывает одно нажатие пользователем функциональной клавиши (игнорируются одиночные нажатия на клавиши Alt, Ctrl, Shift, CapsLock, NumLock, ScrollLock, PrtScr, Pause; комбинации клавиш с Alt, Ctrl, Shift методом ReadKey () обрабатываются). С помощью этого метода можно определить некоторую информацию о нажатой клавише. Мы будем использовать метод ReadKey () преимущественно для того, чтобы окно консоли не закрывалось, пока не будет прочитана выведенная там информация.
Метод Read () считывает один символ (тип char) из входного потока. В качестве результата возвращает число (int) – код символа.
Пример:
Console.Write("Введите символ: ");
int i = Console.Read();
char c = (char)i;
Console.Write("Число=" + i + " Символ=" + c);
Console.ReadKey();
После запуска приложения на экран выводится сообщение «Введите символ:» и метод Read () ожидает ввода некоторого символа. Мы ввели символ “ q ” и нажали на клавишу Enter. Символ, считанный с клавиатуры (а точнее, его код), сохранился в переменной i. Затем с помощью явного преобразования (неявного преобразования из int в char не существует) число i было преобразовано в символ c, и вся информация (число и символ) с помощью метода Write () была выведена на экран.
Курсор после этого мигает непосредственно после выведенного сообщения. Как только будет нажата какая-либо клавиша, приложение будет закрыто. Если бы мы ввели не один, а несколько символов, с помощью метода Read () считался бы только первый из них.
В отличие от метода Read (), метод ReadLine () считывает строку символов из входного потока. В качестве результата возвращает строку (тип string). Пример:
Console.Write("Введите строку: ");
string s = Console.ReadLine();
Console.Write("Строка = " + s);
Console.ReadKey();
Пример выполнения:
Для того чтобы получить из вводимой строки числовое значение, что часто требуется в программах, необходимо воспользоваться преобразованием данных с помощью метода Parse (), реализованного для всех числовых типов данных. Для преобразования строкового представления целого числа в тип int используется метод int.Parse (), для преобразования строкового представления в вещественное – float.Parse () или double.Parse (). В случае, если входная строка имеет неверный формат и преобразование реализовать невозможно, выполнение программы прерывается из‑за ошибки.
Пример использования метода Parse ():
Console.Write("Введите число: ");
string s = Console.ReadLine();
int i = int.Parse(s);
Console.Write("Число = " + i);
Console.ReadKey();
Пример выполнения:
Также можно воспользоваться сокращенным вариантом:
Console.Write("Введите число: ");
int i = int.Parse(Console.ReadLine());
Console.Write("Число = " + i);
Console.ReadKey();
Выполнение этого фрагмента кода будет таким же, как и предыдущего фрагмента.
Заметьте: принято, чтобы ввод с клавиатуры предварялся приглашением, а выводимые значения – пояснениями.
Рассмотрим еще один пример, в котором будут использованы методы ввода ReadLine () и ReadKey () и методы вывода Write () и WriteLine ().
Console.Write("Введите ваше имя: ");
string s = Console.ReadLine();
Console.WriteLine("Мы рады Вас приветствовать, {0}, в нашей программе!", s);
Console.ReadKey();
Пример выполнения этого фрагмента кода:
В лекциях в некоторых приводимых примерах мы будем опускать вызов метода ReadKey (), если он не будет нести какой‑то смысловой нагрузки, кроме задержки на экране. Напомним, что если запускать без отладки (< Ctrl + F 5>), то метод ReadKey () или другие для задержки сообщения не потребуются.