Russian Qt Forum
Ноябрь 23, 2024, 22:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Вывод спецсимволов в cout. Винда  (Прочитано 11251 раз)
G-virus
Гость
« : Май 12, 2011, 20:51 »

Всем привет. Тут нашлась острая необходимость выводить символы рамки в консоли винды.
В линуксе все прекрасно выводится, а в этом ведре не хочет.
Собственно, нужно выводить вот эти символы в поток cout
╔══════╗
║            ║
╚══════╝
Предлагали менять шрифт консоли, но можно ли как-то без этого?

И да, без вывода чисел с приведением типа к char
« Последнее редактирование: Май 12, 2011, 20:52 от G-virus » Записан
Fat-Zer
Гость
« Ответ #1 : Май 13, 2011, 03:49 »

не вижу проблем.... покажите код который не работает.

ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе.
« Последнее редактирование: Май 13, 2011, 03:51 от Fat-Zer » Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #2 : Май 13, 2011, 07:44 »

не вижу проблем.... покажите код который не работает.

ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе.

А если в шрифте(кодировке) консоли нет псевдографических символов ?  Чтож вы батенька рисовать то будите,  крякозяблы ?


И подход разный нужен, все зависит в какой консоле выводить спецсимволы. В програмной или в "настоящей" консоле.
Если в реальной консоле, шрифт нужно загрузить в видеоадаптер, в противном случае менять кодировку.
Записан

Fat-Zer
Гость
« Ответ #3 : Май 13, 2011, 08:24 »

А если в шрифте(кодировке) консоли нет псевдографических символов ?  Чтож вы батенька рисовать то будите,  крякозяблы ?


И подход разный нужен, все зависит в какой консоле выводить спецсимволы. В програмной или в "настоящей" консоле.
Если в реальной консоле, шрифт нужно загрузить в видеоадаптер, в противном случае менять кодировку.
мудрите, батенька... в винде консоль она одна и использует дос-кодировки, для русского это 866. и псевдографика там есть втч в шрифтах в 99,9% случаев
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Май 13, 2011, 10:30 »

в винде консоль она одна и использует дос-кодировки, для русского это 866.
кодировка - предполагаемое соответствие кода символу
шрифт - жёсткое соответствие кода рисунку

Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки.
Записан

Юра.
G-virus
Гость
« Ответ #5 : Май 13, 2011, 10:39 »

не вижу проблем.... покажите код который не работает.

ЗЫ: для рисования псевдографических интерфейсов лучше использовать платформозависимые вещи <conio.h> в дос/вин и ncurses в лине. Или везде второе.

Вот, собственно, элементарный код:
Код
C++ (Qt)
#include <iostream>
#include <stdlib.h>
#include <locale>
using namespace std;
 
int main(void)
{
setlocale(LC_ALL, "Russian");//без этого выводится еще более ужасное безобразие
cout << "╔══════╗" << endl;
cout << "║      ║" << endl;
cout << "╚══════╝" << endl;
system("pause");
return 0;
}
 

Вот, что выводится:
« Последнее редактирование: Май 13, 2011, 10:41 от G-virus » Записан
G-virus
Гость
« Ответ #6 : Май 13, 2011, 10:47 »

Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки.

В Lucida Console по-моему есть такие символы
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Май 13, 2011, 11:01 »

Lucida Console хороший шрифт для псевдографики.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
G-virus
Гость
« Ответ #8 : Май 13, 2011, 11:15 »

Lucida Console хороший шрифт для псевдографики.

Просто в виндовой консоли он же по умолчанию стоит, на сколько я знаю. Только вот выводиться что-то не очень торопится  Смеющийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Май 13, 2011, 11:20 »

На сколько я помню, это не стандартный шрифт и для консоли он не установлен.
По крайней мере в ХР.
« Последнее редактирование: Май 13, 2011, 11:21 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
G-virus
Гость
« Ответ #10 : Май 13, 2011, 11:22 »

На сколько я помню, это не стандартный шрифт и для консоли он не установлен.

А, да, Вы правы. Там "Точечные шрифты" стоит
Записан
Fat-Zer
Гость
« Ответ #11 : Май 13, 2011, 11:38 »

кодировка - предполагаемое соответствие кода символу
шрифт - жёсткое соответствие кода рисунку

Если в шрифте для некого кода нет рисунка, то его нет, не зависимо от кодировки.
почти все шрифты(особенно консольные и моноспейсные) сейчас поддерживают символы из ibm-437, поэтому в этом вопросе остаётся только проблемма кодировки...

Вот, собственно, элементарный код:
Сколько людям не говори, что нельзя в исходниках использовать символы из верхней части ASCII, они их всё равно используют... ещё раз: не используйте в исходниках псевдографику, кирилицу и другую гадость... иначе однажды получите геморой на свою голову... гемор с кирилицей ещё можно пережить, если нет альтернатив, а вот псевдографику  проще отображать кодами...

Вот, что выводится:
в какой кодировке у вас исходники? то что здесь показано похоже на то как некоторые редакторы сохраняют в cp1251... штобы вот-так отображать псевдографику они (исходники) должны быть в ibm866.
Записан
G-virus
Гость
« Ответ #12 : Май 13, 2011, 11:44 »

в какой кодировке у вас исходники? то что здесь показано похоже на то как некоторые редакторы сохраняют в cp1251... штобы вот-так отображать псевдографику они (исходники) должны быть в ibm866.

В ср1251 естественно =)
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Май 13, 2011, 21:41 »

>>В Lucida Console по-моему есть такие символы

>>На сколько я помню, это не стандартный шрифт и для консоли он не установлен.

А у меня в ХП (официальной, корпоративной) всё наоборот. "Точечные шрифты" как допвариант.

Итого: проблема автора темы - актуальна. Т.к. у пользователя может быть выбран не подходящий шрифт.

Бы ла как-то тема про раскрашивание консоли. Может тамошними способами и шрифт задать можно???
Записан

Юра.
Fat-Zer
Гость
« Ответ #14 : Май 14, 2011, 03:29 »

вроде мы выяснили. что у ТС в файле на самом деле было просто сохранено 'г', '=' и 'L' вместо '╔', '═' и '╚'
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 23.