![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 07.01.2014
Сообщений: 124
|
![]()
помогите написать функцию для печати русских символов в консоле, моя не всегда работает с классами, делал поиск по русских символов по таблице, которая выводится моим кодом, сам символ находится верно, но функция не срабатывает(закомментированный код). Подскажите как лучше это всё реализовать?(использую RAD STUDIO XE3)
Код:
#define TRUE FALSE //счастливой отладки
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 03.07.2014
Сообщений: 32
|
![]()
как насчет перейти с char на wchar_t?
imho это самый легкий путь |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.01.2014
Сообщений: 124
|
![]()
я изучаю с++ по старой книге и ничего про wchar_t не слышал, но дело не в этом, я пробовал обрабатывать русские символы по их коду
Код:
П.С. предыдущий способ реализации функции менее универсальный(нельзя использовать числа и знаки препинания).
#define TRUE FALSE //счастливой отладки
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 07.01.2014
Сообщений: 124
|
![]()
всё заработало вот так:
Код:
#define TRUE FALSE //счастливой отладки
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.07.2014
Сообщений: 32
|
![]()
0. У вас там в одном месте
Код:
Код:
1. Почему именно 64? Если вы на нормальном Windows, то заглавные русские буквы имеют коды -64...-33, строчные русские буквы имеют коды -32..-1, буквы ё и Ё имеют коды -72, -88. Если вы будете вычитать 64 из -64...-33, то будете получать коды -128...-97 - это всякая псевдографика. 2. Конструкция cout << N работает по-разному в зависимости от типа N. В вашем случае N целое и эта строчка напечатает код символа цифрами, а не сам символ. Если хотите печатать символ, то надо Код:
3. По-умолчанию в консольных C/C++ программах действует кодировка "C". Эта кодировка позволяет печатать символы с кодами 0..127, а для символов с другими кодами (как у вас) результат печати неопределен. В зависимости от расположения звёзд там могут получаться русские буквы, но с другими кодами. Поэтому перед печатью вам надо сменить кодировку на ту самую, в которой есть русские буквы и русские буквы имеют те самые коды, вот так: Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Русские символы в консоле | pimple2006 | Общие вопросы Delphi | 2 | 16.12.2011 10:50 |
Русские буквы в case | YourLastSong | Общие вопросы C/C++ | 2 | 05.05.2011 17:50 |
Русские буквы | morgan97 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 10.03.2011 10:15 |
Как в Qt в консоле отображать русские буквы? | Lemo | Помощь студентам | 0 | 05.10.2010 14:53 |