C++ Оцентровка текста в консоли

Всем Рептилойдам - Рен ТВ
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
1 Фев 2020
Сообщения
542
Реакции
92
Доброго времени суток, господа.
Не так давно, ко мне обратился начинающий программист с таким вопросом и я решил поделиться ответом здесь.
Знаю, что в гугле гайдов полно, но думаю комьюнити пригодиться если они будут и здесь :)

ss:
1679774773894.png


Моя реализация:

C++:
Expand Collapse Copy
#include <iostream>
#include <Windows.h>
#include <iomanip>

void text_r(const char* s1)
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
    auto columns = csbi.srWindow.Right - csbi.srWindow.Left + 1;

    std::cout << std::setw(columns) << s1 << std::endl;
}

void text_c(const char* s1)
{
    CONSOLE_SCREEN_BUFFER_INFO csbi;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
    auto columns = csbi.srWindow.Right - csbi.srWindow.Left + 1;

    std::cout << std::setw((columns / 2)) << s1 << std::endl;
}
 
это не похоже на ответ, измени ка размер этой хуйни? будет плохо

в целом, я вижу это как некий буфер, в который загоняются элементы на вывод. при изменении размера (разберёшься), начинаем высчитывать размеры заново.
 
это не похоже на ответ, измени ка размер этой хуйни? будет плохо
Ну это надо тогда писать реалтайм рендеринг с обновлением, а так можно просто ограничить возможность изменять размеры консоли.
 
Назад
Сверху Снизу