Шаг 98.
Microsoft Visual C++ 2010. Начала.
Консольное приложение (обще сведения)

    На этом шаге мы рассмотрим понятие консольного приложения и приведем пример такого приложения.

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

    В операционной системе консольное приложение работает в окне командной строки (рисунок 1), которое часто называют окном консоли.


Рис.1. Консольное приложение

    Консольные приложения удобны для решения задач, в которых не предъявляется особых требований к интерфейсу. Они широко используются для решения системных задач. Следует обратить внимание, что многие утилиты Microsoft .NET Framework реализованы как консольные приложения.

    Консольное приложение может вывести информацию на экран и получить данные с клавиатуры одним из трех способов:

    Основным способом взаимодействия с пользователем в консольных .NET-приложениях, созданных Microsoft Visual Studio, является использование объекта Console. Методы, обеспечивающие отображение и ввод данных, перечислены в таблице 1.

Таблица 1. Методы объекта Console
Метод Описание
Console::Write(st) Выводит на экран (в окно консоли) строку st
Console::WriteLine(st) Выводит на экран (в окно консоли) строку st, после чего переводит курсор в начало следующей строки
Console::ReadLine() Значением метода ReadLine является строка, набранная пользователем на клавиатуре. Для преобразования строки в число надо использовать, например, методы System::ToInt32() или System::ToSingle()
Console::Read() Значением метода Read является код символа, набранного на клавиатуре

    Метод Console::Write выводит на экран (в окно консоли) строку, указанную в качестве параметра метода.

    Если надо вывести значение числовой переменной, то для преобразования числа в строку следует использовать метод ToString. Вид (формат) строки, возвращаемой методом ToString, определяет параметр, указанный в инструкции вызова метода (таблица 2).

Таблица 2. Параметры метода ToString
Параметр Формат Пример
"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. Результат работы приложения

    На следующем шаге мы рассмотрим создание консольного приложения.




Предыдущий шаг Содержание Следующий шаг