Функция
ReadConsoleInputФункция
ReadConsoleInput читает данные из консольного буфера ввода и удаляет их из буфера.Синтаксис
BOOL ReadConsoleInput( hConsoleInput, // дескриптор буфера ввода консоли PINPUT_RECORD lpBuffer , // буфер данных DWORD nLength , // число записей для чтения LPDWORD lpNumberOfEventsRead // число прочитанных записей ); |
Параметры
hConsoleInput
[in] Дескриптор консольного буфера ввода. Дескриптор должен иметь право доступа
GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.lpBuffer
[out] ] Указатель на массив
структур INPUT_RECORD, который принимает данные буфера ввода. Общий размер требуемого массива должен быть меньше чем 64КБ.nLength
[in] Размер массива, указанного
параметром lpBuffer, в элементах массиваlpNumberOfEventsRead
[out] Указатель на переменную, которая принимает число прочитанных записей вводимых данных.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите функцию
GetLastError.Замечания
Если число записей, предписываемых в
параметре nLength, превышает число записей, доступных в буфере, читается доступное число. Функция не возвращает значения до тех пор, пока, по крайней мере, не будет прочитана одна запись вводимых данных.Процесс может установить консольный дескриптор буфера ввода в одной из
функций ожидания, чтобы выяснить, когда имеется непрочитанный консольный ввод данных. Когда буфер ввода не пуст, состояние консольного дескриптора буфера ввода является сигнальным.Чтобы выяснять число непрочитанных записей вводимых данных в буфере ввода консоли, используйте
функцию GetNumberOfConsoleInputEvents. Чтобы читать записи вводимых данных из консольного буфера ввода без воздействия на число непрочитанных записей, используйте функцию PeekConsoleInput. Чтобы сбросить все непрочитанные записи в буфере ввода консоли, используйте функцию FlushConsoleInputBuffer.Windows NT /2000/XP:
эта функция использует или символы Unicode или 8-разрядные символы от текущей кодовой страницы консоли. Кодовая страница консоли вначале устанавливается по умолчанию как системная кодовая страница (OEM). Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP, или используйте команды chcp или mode con cp select =.Windows 95/98/Me:
функция ReadConsoleInputW поддерживает Microsoft Layer for Unicode. Чтобы использовать его, Вы должны добавить некоторые файлы к вашему приложению, как изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.Пример смотри в статье Чтение событий буфера вводимых данных.
Смотри также
Обзор консольных приложений, Функции консоли, FlushConsoleInputBuffer, GetNumberOfConsoleInputEvents, INPUT_RECORD, PeekConsoleInput, ReadConsole, ReadFile, SetConsoleCP, SetConsoleOutputCP, WriteConsoleInput
Размещение и совместимость ReadConsoleInput |
|
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 |
Замечания по платформе |
Не имеется |