Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternye_tekhnologii_C.doc
Скачиваний:
8
Добавлен:
01.02.2015
Размер:
368.64 Кб
Скачать

2.2. Операторы вывода

Для вывода результатов используются методы Console.Write() иConsole.WriteLine(). Оба метода выводят строку текста, ноWrite оставляет курсор в позиции окончания строки вывода, аWriteLine кроме этого добавляет операции перевода строки и возврата каретки, т.е. перемещает курсор в начало следующей строки. Пустой список методаWrite недопустим, так как не имеет смысла, аWriteLine с пустым списком параметров добавляет новую строку (описывается символами перевода строки и возврата каретки), что аналогично управляющей последовательности "\n". Так, вызов методаConsole.WriteLine("\n") переведѐт строку дважды – сам метод и управляющая последовательность.

Метод Write довольно часто используется для вывода подсказки перед оператором вводаReadLine. Также методWrite можно вызывать в цикле для вывода строки массива. Для перехода к выводу новой строки массива используется методWriteLine во внешнем цикле, что будет рассмотрено позже.

Если после строки необходимо вывести несколько других значений, эти значения объединяются знаками «+». Если необходимо выполнить операцию сложения между численными значениями, то эти операции необходимо взять в скобки.

Console.WriteLine("Вывод значений: " + 2 + 3);

выведет: Вывод значений: 23, А выражение

Console.WriteLine("Вывод значений: " + (2 + 3));

выведет: Вывод значений: 5

2.3. Форматированный вывод

Если параметры в методах вывода Write иWriteLine разделены запятыми, то первым параметром должна быть строка, которая воспринимается какстрока форматирования, являющаяся шаблоном, задающим вид отображения значений. Шаблон содержит специальные вставки спецификатора формата, указывающие, как нужно выводить данные. Спецификатор формата описывается в следующей общей форме:

{argum, width: fmt}

где argum – номер аргумента, начиная с нуля;width – минимальная ширина поля;fmt – формат. Параметрыwidth иfmt могут отсутствовать, что даѐт варианты спецификатора:{argum},{argum, width},{argum: fmt}. Если указанное целое знаковое значение минимальной ширины меньше длины форматируемой строки, то оно игнорируется, и в качетсве ширины поля используется длина форматируемой строки.

В таблице ниже приведены форматы.

Описатель

формата

Имя

Описание

Пример

“C” или“c”

Валюта

Результат: значение валюты.

Поддерживается: всеми числовыми типами данных.

Описатель точности: количество цифр дробной части.

123.456 ("C", en-US) → $123.46

"D" или "d"

Десятичное число

Результат: целочисленные цифры с необязательным отрицательным знаком.

Поддерживается: только цело-численными типами данных.

Описатель точности: минимальное число цифр, по умолчанию: минимальное необходимое число цифр.

1234 ("D") → 1234

–1234 ("D6") → –001234

"E" или "e"

Экспоненциальный (научный)

Результат: экспоненциальная нотация.

Поддерживается: всеми числовыми типами данных.

Описатель точности: количество цифр дробной части, по умолчанию: 6.

1052.0329112756 ("E", en-US) → 1.052033E+003

1052.0329112756 ("E2", fr_FR) → –1,05E+003

"F" или "f"

Фиксированная запятая

Результат: цифры целой и дробной частей с необязательным

отрицательным знаком.

Поддерживается: всеми числовыми типами данных.

Описатель точности: количество цифр дробной части.

1234,57

1234 ("F1", en-US) → 1234.0

–1234.56 ("F4", de-DE) → –1234,5000

"G" или "g"

Общие

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

–123.456 ("G", en-US) → –123.456

"N" или "n"

Число

Результат: цифры целой и дробной частей, разделители групп и разделитель целой и дробной частей с необязательным отрицательным знаком.

Поддерживается: всеми числовыми типами данных.

Описатель точности: желаемое число знаков дробной части.

1234.567 ("N", en-US) → 1,234.57

1234 ("N", ru-RU) → 1 234,0

–1234.56 ("N", ru-RU) → –1 234,560

"P" или "p"

Процент

Результат: число, умноженное на 100 и отображаемое с символом процента.

Поддерживается: всеми числовыми типами данных.

Описатель точности: желаемое число знаков дробной части.

1 ("P", en-US) → 100.00 %

1 ("P", fr-FR) → 100,00 %

–0.39678 ("P1", fr-FR) → –39,7 %

"R" или "r"

Приѐмо-передача

Результат: строка, дающая при обратном преобразовании идентичное число.

Описатель точности: игнорируется

123456789.12345678 ("R") → 123456789.12345678

"X" или "x"

Шестнад-цатеричный

Результат: шестнадцатеричная строка.

Поддерживается: только целочисленными типами данных.

Описатель точности: число цифр в результирующей строке.

255 ("X") → FF

–1 ("x") → ff

255 ("x4") → 00ff

–1 ("X4") → 00FF

Формат поумолчанию.

double x = 1.0, y = 8.0, z = 3.0;

Console.WriteLine("{0} {1} {2}", x, y, z);

Фигурные скобки с номером в шаблоне определяют позицию, в которую выводятся перечисленные далее через запятую операторы, нумерующиеся с нуля (0:X, 1:Y, 2:Z), поэтому при выводе вместо {0} выведется значениеx, т.е. 1, вместо {1} – 8 и вместо {2} – 3. На консоль выведется строка «1 8 3». В последующем примере форматированного вывода, хоть и присутствуют несколько параметров, но выводится только строка «1 1 1», т.к. в шаблоне указан вывод только нулевого параметра.

Console.WriteLine("{0} {0} {0}", x, y, z);

Например, необходимо вывести значения переменных a иf двойной точности. Переменнуюa в фиксированном формате шириной 8 знаков с точностью после запятой два знака, аf – в научном (экспоненциальном) виде с точностью до пяти знаков. Строку вывода можно записать следующим образом:

Console.WriteLine("a={0,8:F2}, f={1:E5}", a, f);

Описатель "0" является нулевым символом-заполнителем, заменяемым числом выводимого значения или нулѐм, если значение в данном порядке исчерпано. При указании в дробной части описателей меньше количества значимых чисел, выводимое число округляется до указанного в шаблоне уровня точности.

Описатель "#" позиций цифр аналогичен описателю "0" с тем отличием, что если в указанной позиции нет значащих цифр, то они эта позиция не отображается. Пропускает незначащие нули. Если всѐ число равно нулю, оно не выводится, поэтому логично комбинировать описатели "#" и "0".

Описатель настраиваемого формата "." вставляет в результирующую строку локализованный разделитель целой и дробной частей числа. Используется только первая точка в шаблоне, остальные игнорируются.

Символ ",", расположенный между описателями позиций цифр, служит в качестве описателя разделителя групп, расположенный слева от разделителя дробной части – описателя масштабирования чисел, где каждая запятая обозначает деление результата на 1 000 (с округлением результата).

Описатель "%" выводит знак процента и умножает выводимое число на 100.

Символ промилле ("‰" или "\u2030") выводится в позицию, указанную в формате и умножает выводимое число на 1 000.

Обратная косая черта в строке формата используется в качестве escape-символа, т.е. отменяет действие следующего за ним символа-описателя, который воспринимается и выводится как обычный символ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]