Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > как вывести русские символы и символы псевдографик


Автор: v4567 22.7.2012, 16:21
Подскажите пожалуйста как в linux вывести русские символы и символы псевдографики в консоль. Символы псевдографики это линии углы и т. д. что бы таблицы, схемы, не сложные рисунки рисовать.

Пробую вот такой код:

Код

#include <stdio.h>

void main(void)
{


 char i;

 for(i = -128; i < 127; i++)
 {
  printf("%c", i);
 }
 printf("\n");


}


или такой

Код

#include <stdio.h>

void main(void)
{


 unsigned char i;

 for(i = 0; i < 255; i++)
 {
  printf("%c", i);
 }
 printf("\n");


}



или вот такой

Код

#include <stdio.h>

void main(void)
{


 unsigned int i;

 for(i = 0; i < 65535; i++)
 {
  printf("%c", i);
 }
 printf("\n");


}



Но во всех консолях в графических и в буквенных там где должны вывестись русские буквы или символы псевдографики выводятся вопросы или квадратики.

Команда locale вот что выдала:

Код

LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=


Только пожалуйста не предлагайте библиотеки ncurses, libsvga и т.д.

Хотелось бы разобраться конкретно в возникшем вопросе.
За помощь заранее благодарен.

Автор: Cheloveck 22.7.2012, 18:54
Сохрани исходники в UTF-8
Код

#include <iostream>

int main() {
    std::cout << "псевдографика: ┠┡┢┣┦┧┨┩┪┫┬┭┮┯" << std::endl;
    return 0;
}

Код

$ g++ test.cpp
$ ./a.out 
псевдографика: ┠┡┢┣┦┧┨┩┪┫┬┭┮┯


Добавлено через 42 секунды
http://codepad.org/7iwRB3Pu

Автор: v4567 23.7.2012, 15:32
Подскажите как переделать этот код для UTF?

Автор: xvr 24.7.2012, 10:34
Цитата(v4567 @  23.7.2012,  15:32 Найти цитируемый пост)
Подскажите как переделать этот код для UTF? 

'Этот' - это какой? Если ваш исходный - то смотрите, какими значениями кодируются символы псевдографики в Unicode, потом переводите их в UTF-8. С русскими буквами - так же.

NB. В UTF-8 и русские буквы и псевдографика будут выводится несколькими символами (русские буквы - по 2 символа, псевдографика - не знаю, надо смотреть)


Автор: volatile 25.7.2012, 01:06
Цитата(Cheloveck @  22.7.2012,  18:54 Найти цитируемый пост)
псевдографика: ┠┡┢┣┦┧┨┩┪┫┬┭┮┯

Цитата(v4567 @  23.7.2012,  15:32 Найти цитируемый пост)
Подскажите как переделать этот код для UTF? 

Там просто символы глюканули при копипасте, видимо.
вот от сюда можно взять:
Код

╔══╤══╗ ┌──╥──┐
╟──┼──╢ ╞══╬══╡
╚══╧══╝ └──╨──┘

http://liveworkspace.org/code/d69c617a2294ff016a4db7c68cf2b82e

Автор: Cheloveck 25.7.2012, 01:26
Цитата(volatile @  25.7.2012,  02:06 Найти цитируемый пост)
Там просто символы глюканули при копипасте, видимо.

Ничего там не глючело, я строку http://ru.wikipedia.org/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0 скопипостил просто

Автор: volatile 25.7.2012, 01:42
Цитата(Cheloveck @  25.7.2012,  01:26 Найти цитируемый пост)
Ничего там не глючело

У меня просто там квадратики, вместо псевдографики. (не знаю как в вашем браузере)

Добавлено через 4 минуты и 5 секунд
user posted image

Автор: Cheloveck 25.7.2012, 19:03
Цитата(volatile @  25.7.2012,  02:42 Найти цитируемый пост)
не знаю как в вашем браузере

user posted image

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)