Как подчеркнуть текст с помощью printf в C
Я отмечаю вопрос красочный текст с помощью printf в C дает хороший пример установки цветного текста на стандартный вывод консоли в Windows. Есть что-то подобное, что позволяет подчеркнуть? Или, возможно, даже жирным шрифтом или курсивом?
EDIT: я попробовал ответ Лундина на использование COMMON_LVB_UNDERSCORE без успеха. Попытка использовать AddFontResource () для добавления шрифта arial italic, чтобы попробовать курсив, дает ошибку, что есть undefined reference to __imp_AddFontResourceA
3 ответов
это невозможно сделать с помощью каких-либо стандартных функций C, так как язык C даже не распознает наличие экрана.
С Windows API функции консоли вы можете менять цвета, подчеркивать и некоторые другие вещи. Конкретная функция, которую вы ищете, называется SetConsoleTextAttribute так же, как в сообщении, которое вы связали. Изменить его атрибуты включить COMMON_LVB_UNDERSCORE
.
вы можете запустить свою программу в некоторой среде с терминалом, принимающим ANSI escape-коды.
(Я никогда не использовал Windows-так как я использую только Linux -, поэтому я не знаю, как настроить такую среду в Windows; но я слышал, что это возможно)
С ANSI escape-кодами подчеркивание "\e[4m"
с \e
быть ESCAPE-символом ASCII.
возможно, попробуйте использовать termcaps. Что-то вроде этого (после инициализации termcaps) :
printf(tgetstr("us", NULL)); /* underline on */
printf(""/* your string */);
printf(tgetstr("ue", NULL)); /* underline off */
или короче :
printf("%s/* your text here */%s", tgetstr("us", NULL), tgetstr("ue", NULL));
https://www.gnu.org/software/termutils/manual/termcap-1.3/html_node/termcap_34.html