![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Quanzi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.12.2006 Репутация: нет Всего: нет |
Нужно заставить этот макрос понимать русский. Я собственно знаю, как это сделать теоретически, но есть ли у кого-нибудь уже готовое?
А то писать проверки для всех кодировок не хочется... <locale> не подошло, ибо невозможно его использовать с кодом в С. Что-то аналогичное для С есть? Компилятор - Visual Studio 6. Это сообщение отредактировал(а) Quanzi - 25.12.2006, 16:57 |
|||
|
||||
| witex |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 1 Всего: 4 |
можно попробываться вначале перевести CharToOem а потом уже проверять через IsAlpha проверять!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
setlocale из <locale.h> - это C.
-------------------- ... |
|||
|
||||
| Quanzi |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.12.2006 Репутация: нет Всего: нет |
Можно пример? Просто сижу тыкаюсь... может и доберусь до того, как делать, но боюсь нескоро c:\program files\microsoft visual studio\vc98\include\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!" - вот что выдает вообще файл <locale>... <clocale> такого не выдает. Так... как подключить и создать локаль - понял. Методом профессора Тыка. Теперь непонятно - на
Я понимаю, что надо где-то найти функцию с двумя параметрами, но ГДЕ? Пример, плз Это сообщение отредактировал(а) Quanzi - 25.12.2006, 23:28 |
||||
|
|||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Ты перепутал локали из стандартной библиотеки C++ и СRT. Они действительно похожи, но не совсем: в CRT есть только одна общая локаль, которую нужно установить функцией setlocale. Подключать надо <locale.h>, а не <locale>. Последняя - это как раз c++.
Сначала вызови setlocale, чтобы установить нужную локаль, потом используй макрос isalpha, который имеет только один аргумент - проверяемый символ. Примера, извини, под рукой нет. -------------------- ... |
|||
|
||||
| Quanzi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.12.2006 Репутация: нет Всего: нет |
Благодарю.
А какая локаль русская? .866? или russian_russian? Название интересует, ибо не знаю |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
В зависимости от кодировки: если Windows, то russian. И еще, второй аргумент можно поставить LC_ALL, конечно, но тогда и другие региональные настройки (вывод даты, дес. точка и прочее изменятся, что, по-моему, не очень удобно). Но можно тпоставить олько специфический, для сравнения строк, LC_COLLATE, кажется.
-------------------- ... |
|||
|
||||
| Quanzi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.12.2006 Репутация: нет Всего: нет |
Спасибо...
Нда... понял, почему в каком-то из прошлых постов писали про траблы с символами. Локаль меняет кодировку - и Си начинает вызывать вместо 'ъ', например, всякие спецсимволы. Буду думать как починить... Это сообщение отредактировал(а) Quanzi - 26.12.2006, 09:25 |
|||
|
||||
| Quanzi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 22.12.2006 Репутация: нет Всего: нет |
Методом Тыка - для русских символов в Си нормально работает setlocale(LC_ALL,".866").
Проблема осталась другая, перенесу в другой топик... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |