Поделиться через


Функция ReadConsoleInput

Считывает данные из входного буфера консоли и удаляет его из буфера.

Синтаксис

BOOL WINAPI ReadConsoleInput(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead
);

Параметры

hConsoleInput [in]
Дескриптор входного буфера консоли. Этот дескриптор должен иметь право доступа GENERIC_READ. Дополнительные сведения см. в статье Безопасность и права доступа для буфера консоли.

lpBuffer [out]
Указатель на массив INPUT_RECORD структур, получающих входные данные буфера.

nLength [in]
Размер массива, на который указывает параметр lpBuffer , в элементах массива.

lpNumberOfEventsRead [out]
Указатель на переменную, которая получает количество операций чтения входных записей.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Замечания

Если число записей, запрошенных в параметре nLength, превышает количество записей, доступных в буфере, число доступно для чтения. Функция не возвращается, пока не будет прочитана по крайней мере одна входная запись.

Процесс может указать дескриптор входного буфера консоли в одной из функций ожидания, чтобы определить, когда есть непрочитанные входные данные консоли. Если входной буфер не пуст, состояние дескриптора входного буфера консоли сигнализируется.

Чтобы определить количество непрочитанных входных записей в входном буфере консоли, используйте функцию GetNumberOfConsoleInputEvents . Чтобы считывать входные записи из буфера ввода консоли, не влияя на количество непрочитанных записей, используйте функцию PeekConsoleInput . Чтобы отменить карта все непрочитанные записи во входном буфере консоли, используйте функцию FlushConsoleInputBuffer.

Эта функция использует либо символы Юникода, либо 8-разрядные символы из текущей кодовой страницы консоли. Кодовая страница консоли по умолчанию изначально соответствует кодовой странице OEM системы. Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP. Пользователи прежних версий могут также использовать команды chcp или mode con cp select= (но это не рекомендуется для новой разработки).

Примеры

Пример см. в статье о чтении событий входного буфера.

Requirements

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхний колонтитул ConsoleApi.h (через WinCon.h, включая Windows.h)
Библиотека Kernel32.lib
DLL-библиотеки Kernel32.dll
Имена Юникода и ANSI ReadConsoleInputW (Юникод) и ReadConsoleInputA (ANSI)

См. также

Функции консоли

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Низкоуровневые функции ввода консоли

PeekConsoleInput

ReadConsole

ReadConsoleInputEx

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput