ReadConsoleOutputCharacter function

Copies a number of characters from consecutive cells of a console screen buffer, beginning at a specified location.


BOOL WINAPI ReadConsoleOutputCharacter(
  _In_  HANDLE  hConsoleOutput,
  _Out_ LPTSTR  lpCharacter,
  _In_  DWORD   nLength,
  _In_  COORD   dwReadCoord,
  _Out_ LPDWORD lpNumberOfCharsRead


hConsoleOutput [in]
A handle to the console screen buffer. The handle must have the GENERIC_READ access right. For more information, see Console Buffer Security and Access Rights.

lpCharacter [out]
A pointer to a buffer that receives the characters read from the console screen buffer.

The storage for this buffer is allocated from a shared heap for the process that is 64 KB in size. The maximum size of the buffer will depend on heap usage.

nLength [in]
The number of screen buffer character cells from which to read. The size of the buffer pointed to by the lpCharacter parameter should be nLength * sizeof(TCHAR).

dwReadCoord [in]
The coordinates of the first cell in the console screen buffer from which to read, in characters. The X member of the COORD structure is the column, and the Y member is the row.

lpNumberOfCharsRead [out]
A pointer to a variable that receives the number of characters actually read.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


If the number of characters to be read from extends beyond the end of the specified screen buffer row, characters are read from the next row. If the number of characters to be read from extends beyond the end of the console screen buffer, characters up to the end of the console screen buffer are read.

This function uses either Unicode characters or 8-bit characters from the console's current code page. The console's code page defaults initially to the system's OEM code page. To change the console's code page, use the SetConsoleCP or SetConsoleOutputCP functions, or use the chcp or mode con cp select= commands.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]


Wincon.h (include Windows.h)





Unicode and ANSI names

ReadConsoleOutputCharacterW (Unicode) and ReadConsoleOutputCharacterA (ANSI)

See also

Console Functions


Low-Level Console Output Functions