Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Вопрос по выводам символов в консольном окне |
Автор: erslgoeirjh 23.5.2017, 14:18 |
Есть оконное диалоговое MFC-приложение. Это приложение вызывает консольное окно, в котором выводятся результаты решения задачи. Можно ли вывести в этом консольном окне заглавную (прописную) греческую букву "дельта" -- Δ ? И можно ли вывести в этом консольном окне горизонтальную черту над латинскими буквами (например, над буквами r или v)? В том смысле, чтобы это было в одной строке? Если да, то как это можно сделать? |
Автор: vol4ek 23.5.2017, 15:55 | ||
Взять нужный файл шрифта, зарегить его в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\ Заюзать функцию
Вывести нужные кракозябры и потом вернуть обратно старый шрифт. Както так |
Автор: xvr 23.5.2017, 17:37 | ||
Можно проще. BAT файл, сохранен в UTF-8 (кодовая страница 65001)
Так что https://msdn.microsoft.com/en-us/library/windows/desktop/ms686013(v=vs.85).aspx и вывод Unicode'а через UTF-8 Или сразу писать в Unicode (через WriteConsoleW или fputws) |
Автор: vol4ek 23.5.2017, 17:56 | ||||
С дельтой пойдет а вот прямая над символом... ни в одном алфавите нет буквы r с такой фиговиной. Только отредактировать какойто из существующих шрифтов. например греческий. ![]() |
Автор: xvr 23.5.2017, 21:12 |
В Unicode есть специальные символы, которые модифицируют те, что перед ними - https://en.wikipedia.org/wiki/Combining_character В принципе прямую над символами сделать можно ( <symbol> + U+0305), проблема в том, что в консоли это не работает ![]() |
Автор: vol4ek 23.5.2017, 21:31 |
а по мне так проще взять любой редактор шрифтов коих сейчас тыщи да и не париться ![]() |
Автор: vol4ek 24.5.2017, 11:13 |
Думается ввод/вывод какихто формул или хз |
Автор: erslgoeirjh 25.5.2017, 09:44 |
И ещё вопрос: как правильно вывести в консольное окно строку, содержащую символы Unicode? Надо ли для этого использовать функцию WriteConsole или же достаточно использовать функцию wprintf? И как сделать так, чтобы правильно выводились не только символы Unicode, но и символы кириллицы в такой строке в консольном окне? |
Автор: erslgoeirjh 25.5.2017, 10:25 | ||
Что, действительно в консольном окне не работает вывод символа Unicode комбинированной верхней горизонтальной черты (код U-0305)? |
Автор: xvr 25.5.2017, 11:07 | ||||
Почти достаточно. Еще нужно позвать https://msdn.microsoft.com/ru-ru/library/tw4k6df8.aspx на stdout что бы перевести его в Unicode режим.
Вы не поверите, но Unicode включает в себя и кириллицу ![]() Если вам нужно вывести в Unicode обычную char* в текущей кодировке Windows, то воспользуйтесь спецификатором формата %S в wprintf
Выводит как 2 отдельных символа - отдельно первый символ, отдельно верхнюю горизонтальную черту (2м символом). Экспериментально проверено в Windows 7 (более поздние не пробовал) |