Прежде всего, API консоли Windows находится здесь .
Во-вторых, нужна ли вам функция GetConsoleFontSize ?
Я постараюсь быстро набрать пример за секунду.
РЕДАКТИРОВАТЬ: Вот, пожалуйста. Простите, если есть небольшая ошибка. Я на самом деле обнаружил, что это было еще проще. GetCurrentConsoleFont
заполняет структуру COORD
на пути к получению индекса для передачи на GetConsoleFontSize
, поэтому шаг сохранен:)
#define _WIN32_WINNT 0x0501 //XP, 0x0601=windows 7
#include <windows.h>
int main()
{
HANDLE hStdOutput = GetStdHandle (STD_OUTPUT_HANDLE);
CONSOLE_FONT_INFO cfi;
GetCurrentConsoleFont (hStdOutput, FALSE, &cfi);
//cfi.dwFontSize.X == x size
//cfi.dwFontSize.Y == y size
}
EDIT:
Если вы не возражаете против невидимого вывода, вы можете использовать CreateConsoleScreenBuffer
, чтобы в значительной степени иметь невидимое консольное окно в вашей команде, оставляя ваше незатронутым. GetConsoleScreenBufferInfoEx
сообщит вам позицию курсора, и в этот момент вы можете использовать WriteConsole
для записи в ваш буфер (невидимо) и снова проверить местоположение курсора в зависимости от количества фактически написанных символов. Обратите внимание, что проверка местоположения курсора заранее не потребует очистки экрана для использования этого метода.
Если вы не можете позволить себе дополнительный вывод, видимый или невидимый, я не уверен, что такая возможность действительно есть.