Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ylyas
Зарегистрирован: 19.04.2007 Сообщения: 8
|
Добавлено: Чт Дек 13 2007 11:52 Заголовок сообщения: вывод в консоль русского символа!!?? |
|
|
здравствуйте всем! возможно задача весьма проста, но как то не получилось у меня с ней разобраться..
вобщем есть к примеру символ
unsigned char s = 0xe0 /* что равно 224 в десятичной или букве 'а' русского алфавита, можно использовать и wint_t тип для s */
если глядеть в отладчике , то s ='а'
если я вывожу это в консоле
putwchar(s);
то получаю другой символ.
как мне сделать вывод верного символа, подскажите пожалуйста?
то что написано в хелпе дополнительно , и читал, что требуется перенаправление стандартного потока, но только я не знаю как это сделать , по сему для меня это ничего не проясняет ((( |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Alex_soldier
Зарегистрирован: 08.08.2007 Сообщения: 57 Откуда: Россия
|
Добавлено: Чт Дек 13 2007 13:26 Заголовок сообщения: |
|
|
Прогоните в цикле диапазон и засеките, где идут русские! _________________ Мир Идей |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
ylyas
Зарегистрирован: 19.04.2007 Сообщения: 8
|
Добавлено: Чт Дек 13 2007 13:37 Заголовок сообщения: |
|
|
Alex_soldier писал(а): | Прогоните в цикле диапазон и засеките, где идут русские! |
к сожалению стоит другая задача, есть исходный файл , в котором используется именно такая кодировка, то есть 224-255 .
то есть на входе ц нас 16-ти ричные значения а на выходе должна быть
кириллица ))
к тому же в отладчике то я вижу верное значение.
но наверно я что то не то делаю... |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Alex_soldier
Зарегистрирован: 08.08.2007 Сообщения: 57 Откуда: Россия
|
Добавлено: Чт Дек 13 2007 13:41 Заголовок сообщения: |
|
|
Ну так простой заменой!
224 - А
225 - Б
..........
С выводом самих символов 'А' ... 'Я' проблем нет? _________________ Мир Идей |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
ylyas
Зарегистрирован: 19.04.2007 Сообщения: 8
|
Добавлено: Чт Дек 13 2007 14:03 Заголовок сообщения: |
|
|
по моему это слишком прямолинейное решение... думаю должно быть что то более.... "грамотное". ))) возможно даже что и ответ где то на поверхности... |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Чт Дек 13 2007 15:13 Заголовок сообщения: Re: вывод в консоль русского символа!!?? |
|
|
ylyas писал(а): |
unsigned char s = 0xe0 /* что равно 224 в десятичной или букве 'а' русского алфавита, можно использовать и wint_t тип для s */
|
В какой кодировке?
В консоли виндовс используется iso866. Если не найдете библиотеку для перекодировки, можете самостоятельно сделать таблицу перекодировки или воспользоваться поиском по форуму. Эта тема здесь уже обсуждалась, кажется. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
ylyas
Зарегистрирован: 19.04.2007 Сообщения: 8
|
Добавлено: Чт Дек 13 2007 15:55 Заголовок сообщения: Re: вывод в консоль русского символа!!?? |
|
|
Kefir писал(а): | ylyas писал(а): |
unsigned char s = 0xe0 /* что равно 224 в десятичной или букве 'а' русского алфавита, можно использовать и wint_t тип для s */
|
В какой кодировке?
В консоли виндовс используется iso866. Если не найдете библиотеку для перекодировки, можете самостоятельно сделать таблицу перекодировки или воспользоваться поиском по форуму. Эта тема здесь уже обсуждалась, кажется. |
кодировка 1251-windows, что дос использует iso866 я знаю..
может быть использовать функцию charToOem() ?? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Чт Дек 13 2007 16:57 Заголовок сообщения: |
|
|
Возможно. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
tewer
Зарегистрирован: 12.02.2008 Сообщения: 1
|
Добавлено: Вт Фев 12 2008 13:22 Заголовок сообщения: |
|
|
хм.. а нельзя сделать что-нибудь вроде:
system ("chcp 1251");
//...
system ("chcp 866");
или такое решение не подходит под контекст данной задачи? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|