Функция
ReadConsoleФункция
ReadConsole читает символьный ввод данных из консольного буфера ввода и удаляет их из буфера.Синтаксис
BOOL ReadConsole(
); |
Параметры
hConsoleInput
[in] Дескриптор консольного буфера ввода. Дескриптор должен иметь право доступа GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.
lpBuffer
[out] Указатель на буфер, который принимает прочитанные данные из консольного буфера ввода. Общий размер требуемого буфера, должен быть меньше чем 64КБ
nNumberOfCharsToRead
[in] Число TCHARs для чтения. Размер буфера, указанного параметром lpBuffer, должен быть, по крайней мере, nNumberOfCharsToRead * sizeof (TCHAR) байт.
lpNumberOfCharsRead
[out] Указатель на переменную, которая принимает число фактически прочитанных TCHARs.
lpReserved
[in] Зарезервировано, должно быть ПУСТО (NULL).
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите функцию GetLastError.
Функция ReadConsole читает ввод информации с клавиатуры из буфера ввода консоли. Она ведет себя подобно функции ReadFile, за исключением того, что может читать или в режиме Уникода (расширенный 16-битный алфавит) или ANSI. Чтобы иметь прикладные программы, которые поддерживают единственный набор источников информации, совместимый с обоими режимами, используют функцию ReadConsole, а не ReadFile. Хотя функция ReadConsole может использоваться только с дескриптором консольного буфера ввода, ReadFile может использоваться с другими дескрипторами (типа файлов или каналов). Функция ReadConsole терпит неудачу, если используется со стандартным дескриптором, который был переназначен, чтобы быть несколько другим, чем консольный дескриптор.
Все режимы ввода данных, которые воздействуют на поведение функции ReadFile, имеют то же самое воздействие на ReadConsole. Чтобы получить и установить режимы ввода данных консольного буфера ввода, используйте функции GetConsoleMode и SetConsoleMode.
Если буфер ввода содержит события ввода другие, а не события клавиатуры (типа событий с мышью или событий изменения размеров окна), они не сбрасываются. Эти события могут читаться только при помощи использования функции ReadConsoleInput.
Windows NT/2000/XP: Эта функция использует или символы Unicode или 8-разрядные символы текущей кодовой страницы консоли. Кодовая страница консоли вначале устанавливается по умолчанию как системная кодовая страница (OEM).
Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды chcp или mode con cp select=.
Windows 95/98/Me: функция ReadConsoleW поддерживается Microsoft Layer for Unicode. Чтобы использовать его, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Смотри также
Обзор консольных приложений, Функции консоли, GetConsoleMode, ReadConsoleInput, ReadFile, SetConsoleCP, SetConsoleMode, SetConsoleOutputCP, WriteConsole
Размещение и совместимость ReadConsole |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Wincon.h |
- включено в |
Windows.h |
Unicode |
Реализуется как Unicode и ANSI в версиях Windows NT/2000/XP. А также поддерживает Microsoft Layer for Unicode |
Замечания по платформе |
Не имеется |