Название: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 12, 2011, 20:51 Всем привет. Тут нашлась острая необходимость выводить символы рамки в консоли винды.
В линуксе все прекрасно выводится, а в этом ведре не хочет. Собственно, нужно выводить вот эти символы в поток cout ╔══════╗ ║ ║ ╚══════╝ Предлагали менять шрифт консоли, но можно ли как-то без этого? И да, без вывода чисел с приведением типа к char Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Fat-Zer от Май 13, 2011, 03:49 не вижу проблем.... покажите код который не работает.
ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе. Название: Re: Вывод спецсимволов в cout. Винда Отправлено: lesav от Май 13, 2011, 07:44 не вижу проблем.... покажите код который не работает. ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе. А если в шрифте(кодировке) консоли нет псевдографических символов ? Чтож вы батенька рисовать то будите, крякозяблы ? И подход разный нужен, все зависит в какой консоле выводить спецсимволы. В програмной или в "настоящей" консоле. Если в реальной консоле, шрифт нужно загрузить в видеоадаптер, в противном случае менять кодировку. Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Fat-Zer от Май 13, 2011, 08:24 А если в шрифте(кодировке) консоли нет псевдографических символов ? Чтож вы батенька рисовать то будите, крякозяблы ? мудрите, батенька... в винде консоль она одна и использует дос-кодировки, для русского это 866. и псевдографика там есть втч в шрифтах в 99,9% случаевИ подход разный нужен, все зависит в какой консоле выводить спецсимволы. В програмной или в "настоящей" консоле. Если в реальной консоле, шрифт нужно загрузить в видеоадаптер, в противном случае менять кодировку. Название: Re: Вывод спецсимволов в cout. Винда Отправлено: lit-uriy от Май 13, 2011, 10:30 в винде консоль она одна и использует дос-кодировки, для русского это 866. кодировка - предполагаемое соответствие кода символушрифт - жёсткое соответствие кода рисунку Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки. Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 13, 2011, 10:39 не вижу проблем.... покажите код который не работает. ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе. Вот, собственно, элементарный код: Код
Вот, что выводится: (http://dl.dropbox.com/u/6052533/ScreenShots/screenshot.jpg) Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 13, 2011, 10:47 Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки. В Lucida Console по-моему есть такие символы Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Пантер от Май 13, 2011, 11:01 Lucida Console хороший шрифт для псевдографики.
Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 13, 2011, 11:15 Lucida Console хороший шрифт для псевдографики. Просто в виндовой консоли он же по умолчанию стоит, на сколько я знаю. Только вот выводиться что-то не очень торопится ;D Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Пантер от Май 13, 2011, 11:20 На сколько я помню, это не стандартный шрифт и для консоли он не установлен.
По крайней мере в ХР. Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 13, 2011, 11:22 На сколько я помню, это не стандартный шрифт и для консоли он не установлен. А, да, Вы правы. Там "Точечные шрифты" стоит Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Fat-Zer от Май 13, 2011, 11:38 кодировка - предполагаемое соответствие кода символу почти все шрифты(особенно консольные и моноспейсные) сейчас поддерживают символы из ibm-437, поэтому в этом вопросе остаётся только проблемма кодировки...шрифт - жёсткое соответствие кода рисунку Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки. Вот, собственно, элементарный код: Сколько людям не говори, что нельзя в исходниках использовать символы из верхней части ASCII, они их всё равно используют... ещё раз: не используйте в исходниках псевдографику, кирилицу и другую гадость... иначе однажды получите геморой на свою голову... гемор с кирилицей ещё можно пережить, если нет альтернатив, а вот псевдографику проще отображать кодами...Вот, что выводится: в какой кодировке у вас исходники? то что здесь показано похоже на то как некоторые редакторы сохраняют в cp1251... штобы вот-так отображать псевдографику они (исходники) должны быть в ibm866.Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 13, 2011, 11:44 в какой кодировке у вас исходники? то что здесь показано похоже на то как некоторые редакторы сохраняют в cp1251... штобы вот-так отображать псевдографику они (исходники) должны быть в ibm866. В ср1251 естественно =) Название: Re: Вывод спецсимволов в cout. Винда Отправлено: lit-uriy от Май 13, 2011, 21:41 >>В Lucida Console по-моему есть такие символы
>>На сколько я помню, это не стандартный шрифт и для консоли он не установлен. А у меня в ХП (официальной, корпоративной) всё наоборот. "Точечные шрифты" как допвариант. Итого: проблема автора темы - актуальна. Т.к. у пользователя может быть выбран не подходящий шрифт. Бы ла как-то тема про раскрашивание консоли. Может тамошними способами и шрифт задать можно??? Название: Re: Вывод спецсимволов в cout. Винда Отправлено: Fat-Zer от Май 14, 2011, 03:29 вроде мы выяснили. что у ТС в файле на самом деле было просто сохранено 'г', '=' и 'L' вместо '╔', '═' и '╚'
Название: Re: Вывод спецсимволов в cout. Винда Отправлено: G-virus от Май 14, 2011, 10:32 Да я уже извратился, выводом спец символов через приведение типа ;D
Там действительно, как уже говорили, нужно менять кодировку либо сохраненного исходника, либо консоли. Под линуксом кодировка консоли и исходника вроде бы совпадает, в итоге просто копипастом засунуть в исходник символы псевдографики, они так и выведутся на экран, как надо. А вот в ведре... поставить только кодировку DOS-866, ну или извращаться)) |