На этом шаге мы рассмотрим понятие консольного приложения и приведем пример такого приложения.
Консольное приложение — это программа, которая для взаимодействия с пользователем использует консоль — клавиатуру и монитор, работающий в режиме отображения символьной информации (буквы, цифры и специальные знаки).
В операционной системе консольное приложение работает в окне командной строки (рисунок 1), которое часто называют окном консоли.
Рис.1. Консольное приложение
Консольные приложения удобны для решения задач, в которых не предъявляется особых требований к интерфейсу. Они широко используются для решения системных задач. Следует обратить внимание, что многие утилиты Microsoft .NET Framework реализованы как консольные приложения.
Консольное приложение может вывести информацию на экран и получить данные с клавиатуры одним из трех способов:
Основным способом взаимодействия с пользователем в консольных .NET-приложениях, созданных Microsoft Visual Studio, является использование объекта Console. Методы, обеспечивающие отображение и ввод данных, перечислены в таблице 1.
Метод | Описание |
---|---|
Console::Write(st) | Выводит на экран (в окно консоли) строку st |
Console::WriteLine(st) | Выводит на экран (в окно консоли) строку st, после чего переводит курсор в начало следующей строки |
Console::ReadLine() | Значением метода ReadLine является строка, набранная пользователем на клавиатуре. Для преобразования строки в число надо использовать, например, методы System::ToInt32() или System::ToSingle() |
Console::Read() | Значением метода Read является код символа, набранного на клавиатуре |
Метод Console::Write выводит на экран (в окно консоли) строку, указанную в качестве параметра метода.
Если надо вывести значение числовой переменной, то для преобразования числа в строку следует использовать метод ToString. Вид (формат) строки, возвращаемой методом ToString, определяет параметр, указанный в инструкции вызова метода (таблица 2).
Параметр | Формат | Пример |
---|---|---|
"c", "C" | Currency — финансовый (денежный). Используется для представления денежных величин. Обозначение денежной единицы, разделитель групп разрядов, способ отображения отрицательных чисел определяют соответствующие настройки операционной системы | 5 5055,28р. |
"e", "E" | Scientific (exponential) — научный. Используется для представления очень маленьких или очень больших чисел. Разделитель целой и дробной частей числа задается в настройках операционной системы | 5,505528+E04 |
"f", "F" | Fixed — число с фиксированной точкой. Используется для представления дробных чисел. Количество цифр дробной части, способ отображения отрицательных чисел определяют соответствующие настройки операционной системы | 55055,28 |
"g", "G" | General — универсальный формат. Похож на Number, но разряды не разделены на группы | 55055,28 |
"n", "N" | Number — числовой. Используется для представления дробных чисел. Количество цифр дробной части, символразделитель групп разрядов, способ отображения отрицательных чисел определяют соответствующие настройки операционной системы | 5 5055,28 |
"r", "R" | Roundtrip — без округления. В отличие от формата Number, этот формат не выполняет округления (количество цифр дробной части зависит от значения числа) | 55055,2755 |
Следует обратить внимание, что символ-разделитель целой и дробной частей числа задает операционная система. Этот же символ надо использовать и при вводе дробных чисел.
После выполнения инструкции Write курсор остается в той позиции экрана, в которую он переместился после вывода последнего символа строки. Следующая инструкция Write начинает вывод с той позиции экрана, в которой находится курсор.
Метод WriteLine отличается от метода Write тем, что после вывода строки курсор автоматически переходит в начало следующей строки.
Параметр метода WriteLine можно не указывать. В этом случае курсор будет переведен в начало следующей строки.
Метод ReadLine объекта Console обеспечивает ввод с клавиатуры строки символов. Для преобразования введенной строки в данные необходимо использовать соответствующие методы преобразования: System::ToInt16() , System::ToInt32() , System::ToSingle() , System::ToDouble() и т. д.
Следует обратить внимание на то, что в процессе преобразования строки в число возможны ошибки (исключения), например, из-за того, что при вводе дробного числа пользователь введет точку вместо запятой ("правильным" символом, при стандартной для России настройке операционной системы, является запятая).
В качестве примера использования методов объекта Console приведем программу пересчета цены из долларов в рубли.
// Console.cpp: главный файл проекта. #include "stdafx.h" using namespace System; int main(array<System::String ^> ^args) { float usd,k,rub; String^ st; Console::WriteLine(L"Конвертер"); // ввод данных Console::Write(L"Цена в долларах->"); st = Console::ReadLine(); usd = Convert::ToSingle(st); Console::Write(L"Курс->"); st = Console::ReadLine(); k = Convert::ToSingle(st); // расчет rub = usd * k; // вывод результата Console::WriteLine(); // пустая строка st = usd.ToString("f") + "USD = " + rub.ToString("c"); Console::WriteLine(st); // чтобы окно не исчезло с экрана Console::WriteLine(); Console::Write(L"Press any key to continue..."); int ch = Console::Read(); return 0; }
Результат работы приложения приведен на рисунке 2.
Рис.2. Результат работы приложения
На следующем шаге мы рассмотрим создание консольного приложения.