Limpiar consola usando la API (C/C++)

Función (en C) que limpia la consola (API) (probada en Windows)
Vendría siendo equivalente a usar:

System("CLS");

Función:

int ClrScrn(void)
{
// Top left corner coordinates
COORD coord = {0};

// Contains information about screen buffer
CONSOLE_SCREEN_BUFFER_INFO cBufferInfo;

// Characters written in buffer
DWORD dwI;

// Characters to clear ("area" of console, so to speak)
DWORD dwSize;

// Handle to console
HANDLE hI = GetStdHandle(STD_OUTPUT_HANDLE);

// Just a bit error handling
if(hI == INVALID_HANDLE_VALUE) return (EXIT_FAILURE);

// GetConsoleScreenBufferInfo returns 0 on error
if (GetConsoleScreenBufferInfo(hI, &cBufferInfo))
{
// Calculate characters to clear
dwSize = cBufferInfo.dwSize.X * cBufferInfo.dwSize.Y;

// Write space characters to buffer as many times as needed, i.e. dwSize
FillConsoleOutputCharacter(hI, TEXT(' '), dwSize, coord, &dwI );

// Set console cursor to top left coord
SetConsoleCursorPosition(hI, coord);

return (EXIT_SUCCESS);

} else
return (EXIT_FAILURE);
}

Escribe un comentario