Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2016, 14:46   #21
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
тут вы перегнули, юникод это не только юникодные символы.
но еще и нативная кодировка системы.
Не, не перегнул, вроде.
Установка локали никак не повлияет на вывод юникодных символов в "неюникодную" консоль.
Под символами юникода я подразумеваю символы, которых нет в наборах ascii.
Что-то типа символа 'ڇ'.
Правда, не знаю, может в какой локали и есть такое, но я сомневаюсь.
Croessmah вне форума Ответить с цитированием
Старый 30.03.2016, 15:37   #22
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Решил записать из файла слово в переменную типа wchar_t и получил ошибку.

вероятно ifstream in не работает с этими типами

Код:
wchar_t b[20];
in>>b;       // Ошибка !!!
Можно ли как то это исправить ?

CharToOem(); принимает в качестве входной строку типа wchar_t

или char.

сейчас у меня определенна директива UNICODE
RAFA91 вне форума Ответить с цитированием
Старый 30.03.2016, 15:39   #23
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
вероятно ifstream in не работает с этими типами
прикинь, да, чудеса...

А wifstream на что?
Croessmah вне форума Ответить с цитированием
Старый 30.03.2016, 15:54   #24
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
пр

А wifstream на что?
читать то читает , только после выполнения
Код:
CharToOem(b,c);
на экран получаю бредни, вместо русских букв

Код:
cout<<c<<endl;
RAFA91 вне форума Ответить с цитированием
Старый 30.03.2016, 15:54   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а у вас консоль настроена на вывод Windows кодировки, а не DOS?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2016, 16:00   #26
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
аWindows кодировки, а не DOS?
директива UNICODE отключена что-бы работать с

CharToOem(a,c);



Код:
 char a[] = "ПРИВЕТ";
char c[20];
 CharToOem(a,c);
   
	  cout<<c<<endl;
RAFA91 вне форума Ответить с цитированием
Старый 30.03.2016, 16:04   #27
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я разве что-то спросил про директиву?

вы кодировку консоли задали?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2016, 16:08   #28
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение

вы кодировку консоли задали?
речь об этом ?
Изображения
Тип файла: jpg Безымянный.JPG (69.0 Кб, 47 просмотров)
RAFA91 вне форума Ответить с цитированием
Старый 30.03.2016, 16:14   #29
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это к директиве относится.

локаль консоли в программе устанавливаете?(кодом, не директивами)
8 пост ваш же.
только кодировка Windows номер иной имеет. 1251 для русского
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2016, 16:16   #30
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
только кодировка Windows номер иной имеет. 1251 для русского
пару месяцев назад я что-то подобное выкладывал

wcin.imbue(locale(".866"));
wcout.imbue(locale(".866"));
RAFA91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск