Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
A.doc
Скачиваний:
36
Добавлен:
09.04.2015
Размер:
5.6 Mб
Скачать

105 Глава 2

Существуют и другие спецификаторы формата, которые позволяют вам предста- вить различные типы данных различными способами. Некоторые из наиболее часто используемых спецификаторов формата перечислены в табл. 2.10.

Ниже приведен демонстрационный пример вывода консольной программы CLR, вычисляющий цену коврового покрытия.

Вывод этой программы должен быть таким:

Данные, переменные и вычисления 106

Описание полученных результатов

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

Операторы вывода используют спецификатор формата F2, чтобы ограничить вы- ходные значения двумя десятичными знаками после точки. Без этого в выводе мо- жет получиться больше знаков, что нежелательно, особенно когда речь идет о цене. Чтобы увидеть разницу, можете удалить спецификатор формата.

Обратите внимание, что оператор вывода площади использует арифметическое выражение во втором аргументе функции WriteLine (). Компилятор сначала вычис- лит это выражение, а затем передаст результат в виде аргумента функции. В общем случае вы всегда можете использовать выражение в качестве аргумента функции — до тех пор, пока тип полученного результата согласуется с типом параметра функции.

Клавиатурный ввод в C++/CU

Возможности ввода с клавиатуры, которые имеются у консольных программ .NET Framework, несколько ограничены. Вы можете прочесть полную строку ввода как тек- стовую строку, используя для этого функцию Console: :ReadLine (), или же вы мо- жете прочесть отдельный символ, применяя для этого функцию Console: :Read (). Можно также прочесть нажатие клавиши функцией Console:: ReadKey (). Функцияиспользуется следующим образом:

Это читает полную входную строку текста, завершенную нажатием клавиши <Enter>. Переменная line имеет типи хранит ссылку на строку, которая

получается в результате выполнения функции. Маленький

символ, который следует за именем типа String, указывает, что это — дескриптор (handle), который ссылается на объект типа String. О типе String и дескрипторах объектов String вы узнаете в главе 4.

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

С помощью функции Read () вы можете читать входные данные символ за симво- лом, и затем анализировать прочитанные символы и преобразовывать их в соответ- ствующие числовые значения.

Функция <возвращает нажатую клавишу в виде объекта класса

ConsoleKeylnf о, который представляет собой класс типа значения, определенный в пространстве имен System. Вот оператор чтения нажатой клавиши: