Ввод-вывод
Рис.4.1. Использование символа «Данные » в схемах алгоритмов
для обозначения операций ввода-вывода
Консольный ввод-вывод
(https://msdn.microsoft.com/ru-ru/library/system.console.aspx)
Ввод и вывод с помощью класса System::Console
Пример 4.1. Ввод и вывод данных в консольном приложении.
// Программа сложения двух чисел.
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args) {
// Задание заголовка и внешнего вида консоли.
Console::Title = "Сложение двух чисел";
Console::BackgroundColor = ConsoleColor::Blue; // - цвет фона
Console::ForegroundColor = ConsoleColor::White; // - цвет текста
Console::Clear();
Single x, y, z;
// Ввод первого слагаемого и
// его преобразование из строки в число типа Single.
Console::Write("Введите первое слагаемое: ");
String^ St = Console::ReadLine();
x = Single::Parse(St);
// Ввод второго слагаемого и
// его преобразование из строки в число типа Single.
Console::Write("Введите второе слагаемое: ");
St = Console::ReadLine();
y = Single::Parse(St);
// Вычисление и вывод результата.
z = x + y;
Console::WriteLine("Сумма = {0} + {1} = {2}", x, y, z);
// Приостановить выполнение программы до нажатия любой клавиши.
Console::WriteLine("Нажмите любую клавишу!");
Console::ReadKey();
// или
// Console::Write("Нажмите <Enter> для завершения работы.");
// Console::ReadLine();
return 0;
}
/* Вывод:
Введите первое слагаемое: 12
Введите второе слагаемое: 23
Сумма = 12 + 23 = 35
*/
Методы класса System::Console
Таблица 4.1. Некоторые полезные свойства и методы класса System::Console
Имя | Описание |
Свойства | |
BufferHeight BufferWidth | Возвращает или задает соответственно высоту и ширину буферной области экрана. |
CursorLeft CursorTop | Возвращает или задает позицию столбца или строки курсора в буферной области экрана. |
LargestWindowHeight LargestWindowWidth | Возвращает максимальное число строк или столбцов окна консоли с учетом текущего шрифта и разрешения экрана. |
Методы | |
Beep(); Beep(f,d); | Воспроизводит звуковой сигнал через динамик консоли. Параметры задают частоту сигнала (f) в диапазоне от 37 до 32767 Гц и его длительность (d) в миллисекундах (тип пара-метров – Int32). По умолчанию сигнал воспроизводится с ча-стотой 800 Гц и длительностью 200 мс. Метод не поддержи-вается в 64-битовых выпусках Windows Vista и Windows XP. |
Clear(); | Удаляет из буфера консоли и ее окна отображаемую информацию. Применение этого метода эквивалентно вызову команды MS-DOS cls из командной строки. При вызове метода курсор автоматически перемещается в левый верхний угол окна и содержимое буфера экрана очищается с использование текущих цветов текста и фона. |
MoveBufferArea(sL,sT, sW,sH,tL,tT); | Копирует заданную исходную область буфера экрана в заданную область назначения. Первые два параметра задают координаты левого верхнего угла исходной области экрана, подлежащей копированию (sL – позиция столбца, sT – позиция строки), а вторые два параметра задают размер этой области (sW – ширину в позициях столбца, а sH – высоту в строках). Третья пара параметров задает координаты левого верхнего угла области назначения экрана (tL – позиция столбца, tT – позиция строки). Тип параметров – Int32. По умолчанию размер буфера экрана (по горизонтали и вертикали) определен свойствами BufferWidth (80 позиций стобца) и BufferHeight (300 строк). |
Read(); ReadLine(); | Возвращает строку символов из стандартного входного пото-ка. Для метода ReadLine эта строка заканчивается символа-ми возврата каретки (0x000d) и перевода строки (0x000a). |
ReadKey(); ReadKey(k); | Получает следующий нажатый пользователем символ или функциональную клавишу. Параметр k определяет, следует ли отображать нажатую клавишу в окне консоли (true – не отображать нажатую клавишу; false – отображать). По умол-чанию нажатая клавиша отображается в окне консоли. Этот метод осуществляет ожидание, т.е. блокирует поток, вызывая в цикле метод, пока не будет нажата символьная или функциональная клавиша. Символьная или функциональная клавиша может быть нажата в сочетании с управляющей клавишей <ALT>, <CTRL> или <SHIFT>. Однако само по себе нажатие клавиши <ALT>, <CTRL> или <SHIFT> не вызывает возврата управления методом ReadKey. |
SetBufferSize(W,H); | Устанавливает заданные значения ширины (W) и высоты (H) буферной области экрана. |
SetCursorPosition(L,T); | Устанавливает положение курсора на экране (L – позиция столбца, T – позиция строки). С помощью этого метода указывается, где должна начаться следующая операция вывода в окно консоли. |
Write(V); Write(sf,V); WriteLine(V); WriteLine(sf,V); | Записывает строковое представление заданного объекта (V) в стандартный выходной поток, используя заданную строку формата (sf). Для метода WriteLine эта строка заканчивается символами признака конца строки ("\r\n"). В качестве объекта могут выступать значения, списки значений или массивы различных типов. |
Пример 4.2. Использование методов класса System::Console.
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args) {