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();
return 0;
}
Перечисление System::ConsoleKey
(https://msdn.microsoft.com/ru-ru/library/system.consolekey.aspx)
Таблица 4.2. Основные члены перечисления System::ConsoleKey
Имя члена | Клавиша | Имя члена | Клавиша | |
F1... F12 | F1... F12 | Insert | INS (INSERT) | |
D0... D9 | 0... 9 | Delete | DEL (DELETE) | |
A... Z | A... Z | Home | HOME | |
Spacebar | ПРОБЕЛ | End | END | |
Tab | TAB | PageUp | PAGE UP | |
Backspace | BACKSPACE | PageDown | PAGE DOWN | |
Enter | ВВОД | LeftArrow | СТРЕЛКА ВЛЕВО | |
Escape | ESC (ESCAPE) | RightArrow | СТРЕЛКА ВПРАВО | |
NumPad0... NumPad9 | 0... 9 на цифровой клавиатуре | UpArrow | СТРЕЛКА ВВЕРХ | |
Decimal | знак десятичного разделителя. | DownArrow | СТРЕЛКА ВНИЗ | |
Add | знак плюс | Clear | CLEAR | |
Subtract | знак минус | Pause | PAUSE | |
Multiply | знак умножения | |||
Divide | знак деления. | PrintScreen | PRINT SCREEN |
Структура System::ConsoleKeyInfo
(https://msdn.microsoft.com/ru-ru/library/system.consolekeyinfo.aspx)
Таблица 4.3. Свойства типа System::ConsoleKeyInfo
Имя | Описание |
Key | Возвращает клавишу консоли, представленную текущим объектом ConsoleKeyInfo. |
KeyChar | Возвращает символ Unicode, представленный текущим объектом ConsoleKeyInfo. |
Modifiers | Возвращает побитовое сочетание значений из перечисления System::ConsoleModifiers, указывающее, были ли одновременно с клавишей консоли нажаты управляющие клавиши <SHIFT>, <ALT> или <CTRL>. |
Перечисление ConsoleModifiers
(https://msdn.microsoft.com/ru-ru/library/system.consolemodifiers.aspx)
Таблица 4.4. Основные члены перечисления System::ConsoleModifiers
Имя члена | Описание |
Alt | Клавиша <ALT> слева и справа |
Shift | Клавиша <SHIFT> слева и справа |
Control | Клавиша <CTRL> слева и справа |
Пример 4.3. Применение метода ReadKey, не имеющего параметров (или принимающего параметр типа Boolean) для считывания клавиши и определения, нажата ли одна или несколько клавиш <SHIFT>, <ALT> и <CTRL>.
#include "stdafx.h"
using namespace System;
int main(array<System::String^> ^args) {
ConsoleKeyInfo cki;
// Предотвращение завершения примера при нажатии CTRL+C.
Console::TreatControlCAsInput = true;
Console::WriteLine("Нажмите любую комбинацию управляющей " +
"клавиши CTRL, ALT, или SHIFT, и " +
"алфавитно-цифровой клавиши.");
Console::WriteLine("Нажмите клавишу <Esc> для выхода.\n");
do {
cki = Console::ReadKey();
// или cki = Console::ReadKey(true);
Console::Write(" – Вы ввели ");
if ((cki.Modifiers & ConsoleModifiers::Alt)!=
ConsoleModifiers()) Console::Write("ALT+");
if ((cki.Modifiers & ConsoleModifiers::Shift)!=
ConsoleModifiers()) Console::Write("SHIFT+");
if ((cki.Modifiers & ConsoleModifiers::Control)!=
ConsoleModifiers()) Console::Write("CTL+");
Console::WriteLine(cki.Key.ToString());
// или Console::WriteLine("{0} (символ '{1}')",
// cki.Key, cki.KeyChar);
}
while (cki.Key!= ConsoleKey::Escape);
return 0;
}
/* Вывод:
Нажмите любую комбинацию управляющей клавиши CTRL, ALT, или
SHIFT, и алфавитно-цифровой клавиши.
Нажмите клавишу <Esc> для выхода.
a – Вы ввели A или Вы ввели CTL+A (символ '☺')
k - Вы ввели ALT+K Вы ввели C (символ 'c')
„ - Вы ввели CTL+P Вы ввели CTL+C (символ '♥')
- Вы ввели RightArrow Вы ввели K (символ 'k')
R - Вы ввели SHIFT+R Вы ввели ALT+I (символ 'i')
- Вы ввели CTL+I Вы ввели ALT+U (символ 'u')
J - Вы ввели ALT+J Вы ввели ALT+SHIFT+H (символ 'H')
O - Вы ввели SHIFT+O Вы ввели Escape (символ '←')
§ - Вы ввели CTL+U
*/
Форматирование строк
(https://msdn.microsoft.com/ru-ru/library/26etazsy.aspx)
Форматирование – это процесс преобразования значения определенного типа в его строковое представление и придания полученной строке желаемого вида.
Для элемента формата используется следующий синтаксис:
{index[,length][:format]}
Таблица 4.5. Составляющие элемента форматирования
Элемент | Описание |
index | Номер форматируемого объекта (отсчитываемый от нуля) в списке параметров метода. Если объект, указанный параметром index, имеет значение null, элемент формата заменяется на String.Empty (пустую строку). |
length | Минимальное количество знаков в строковом представлении параметра. Если значение положительное, то параметр выравнивается по правому краю; а если отрицательное, то – по левому краю. |
format | Стандартная или пользовательская настраиваемая строка форматирования (п.п.4.2.1, 4.2.2), которая поддерживается форматируемым объектом. Возможные значения для параметра format совпадают со значениями, поддерживаемыми методом ToString данного объекта. Если format не указан, то в качестве него передается null. |