Форум программистов, компьютерный форум CyberForum.ru

вставка символа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
08.03.2010, 21:01     вставка символа #1
здрасти, как сделать чтобы в консоли отображался символ ®?

делаю вот так
C++
1
CharToOem("знак  ®",mes);
отображается просто как R
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
08.03.2010, 21:06     вставка символа #2
Может через ASCII-код!!!
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
08.03.2010, 21:12  [ТС]     вставка символа #3
какой у него код?

Добавлено через 2 минуты
169? .
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
08.03.2010, 21:33     вставка символа #4
вообще 174
но при выводе
C++
1
2
int x =174;
cout<<(char)x;
выводится о.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
08.03.2010, 21:36  [ТС]     вставка символа #5
я и я так пробовал, не получается
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
08.03.2010, 22:09     вставка символа #6
Ничё не выйдет, в консоли отображаются только такие символы
http://msdn.microsoft.com/ru-ru/gogl...8en-us%29.aspx

НУжного тебе среди них нет.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 16:41     вставка символа #7
А если подружить консоль с кодовой страницей 1251?
C++
1
2
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
Там таки есть этот символ
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
09.03.2010, 17:13     вставка символа #8
Бесполезно, выводит
1
1
о
и всё тут. Хоть из консоли запускай, хоть из проводника.
C++
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <windows.h>
int main(){
 printf("%d\n",SetConsoleCP(1251)); 
 printf("%d\n",SetConsoleOutputCP(1251)); 
 printf ("%c", 174);
 getchar ();
 return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 17:20     вставка символа #9
Цитата Сообщение от kravam Посмотреть сообщение
Бесполезно, выводит
1
1
о
и всё тут. Хоть из консоли запускай, хоть из проводника.
А ничего удивительного: эти функции устанавливают кодировку консоли, а не возвращают код символа. Надо так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <windows.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    std::cout << "®" << std::endl;
    system("pause");
    return EXIT_SUCCESS;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 17:28     вставка символа #10
Вот и результат
вставка символа
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
09.03.2010, 17:51     вставка символа #11
Но printf-то должна вывести R в кругляшке...
Но как бы то ни было, это у меня не сработало.
И кракозябры, где должно быть "нажмите любую клавишу"
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 17:55     вставка символа #12
Цитата Сообщение от kravam Посмотреть сообщение
Но printf-то должна вывести R в кругляшке...
Но как бы то ни было, это у меня не сработало.
И кракозябры, где должно быть "нажмите любую клавишу"
Когда запустишь программу, открой свойства консоли, выбери шрифт Lucida Console (и размер побольше, иначе значок не разглядишь), и примени изменения для данного окна
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
09.03.2010, 18:00     вставка символа #13
ТАк сработало, да, спасибо. Получается, всё дело в шрифте Lucida Console? Странно всё это и непонят
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
09.03.2010, 18:09     вставка символа #14
Нет, подойдет любой шрифт, в котором символы выводятся в кодировке 1251 (по умолчанию стоит досовский с кодировкой 866)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2010, 18:12     вставка символа
Еще ссылки по теме:

C++ Вместо 1-го символа, нужно чтобы 2 символа считывалось!
C++ Вставка пробела после символа, не являющегося буквой или цифрой
C++ Координаты х и у, вставка символа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
09.03.2010, 18:12     вставка символа #15
А, ну то есть поменялась кодировка, но этого мало, поскольку в действующем арсенале консоли просто нет необходимых знаков!
Очень интересно. Спасибо.
...Ну а вообще тоже как-то не того. Юзер ждёт, что всё автоматом сделается, а тут ещё в свойства лезть надо, что-то менять, Вы бы не сказали, так я сроду бы не догадался.
Yandex
Объявления
09.03.2010, 18:12     вставка символа
Ответ Создать тему
Опции темы

Текущее время: 02:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru