- •4. Ввод-вывод
- •4.1. Консольный ввод-вывод
- •4.1.1. Ввод и вывод с помощью классаConsole
- •4.1.2. Методы классаSystem.Console
- •Перечисление System.ConsoleKey
- •Структура System.ConsoleKeyInfo
- •Перечисление ConsoleModifiers
- •4.2. Форматирование строк
- •{Index[,length][:format]}
- •4.2.1. Строки стандартных числовых форматов
- •4.2.2. Строки настраиваемых числовых форматов
- •4.2.3. Форматирование с помощью управляющих последовательностей
- •4.3. Ввод-вывод с использованием графического интерфейса
- •4.3.1. Ввод-вывод с использованием элементов управления
- •4.3.2. Использование стандартного окна MessageBox для вывода сообщений
4. Ввод-вывод
Рис.4.1. Алгоритмическая конструкция «Данные»
4.1. Консольный ввод-вывод
(http://msdn.microsoft.com/ru-ru/library/yz3fhfz1.aspx)
4.1.1. Ввод и вывод с помощью классаConsole
Пример 4.1. Иллюстрация консольного ввода-вывода.
using System;
class Program
{ static void Main()
{ Console.Write("Введите ваше имя: ");
string S = Console.ReadLine();
if (S != "")
Console.WriteLine("Здравствуйте, {0}!", S);
else
Console.WriteLine("Здравствуйте, неизвестный!");
Console.Write("Сколько вам лет? ");
S = Console.ReadLine();
Console.WriteLine("Ваш возраст - {0} лет.\n", S);
Console.Write("Нажмите <Enter> для завершения работы.");
Console.ReadLine();
}
}
/* Вывод:
Введите Ваше имя: Валерий
Здравствуйте, Валерий!
Сколько Вам лет? 19
Ваш возраст – 19 лет.
*/
4.1.2. Методы класса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.1. Использование методов класса System.Console.
using System;
{ class Program
{ static void Main()
{ Console.Clear();
Console.SetCursorPosition(0, 3);
Console.Beep();
Console.Write("Введите частоту звукового сигнала (Гц): ");
int hz = Int32.Parse(Console.ReadLine());
Console.Write("Введите длительность звукового сигнала (мс): ");
int ms = Int32.Parse(Console.ReadLine());
Console.Beep(hz, ms);
Console.WriteLine("Нажмите любую клавишу для выхода.");
Console.ReadKey();
}
}
}