Работа с русскими кодировками и шрифтами в С (консоль)
От: nemon Украина  
Дата: 30.09.07 22:46
Оценка:
Уважаемые единомышленники, будьте так добры...
Кто может подсказать: как можно русифицировать консоль в C да еще и на разных системах (Win98-WinXP,Linux) ?
Чтобы не просто потоковый ввод и вывод присутствовал, но и возможность сортировки символов, к примеру...
Какие библиотеки подрубить и где их найти ? К примеру, я знаю, что в WinXP нужно:
#include <windows.h>
....
void main()
{
SetConsoleCP(1251); // ввод текста
SetConsoleOutputCP(1251); // вывод текста
cout<< "Здравствуй, Вася !\n"; // Output -> Здравствуй, Вася !
}
но и то ввод и вывод
как же быть (помимо того, что самому библиотечку накатать )

Заранее thanks.
Re: Работа с русскими кодировками и шрифтами в С (консоль)
От: Mr.Cat  
Дата: 01.10.07 00:06
Оценка:
Что-то в этом духе:
wcout.imbue(locale(".866"));
...
wcout << ...
...
wcout >> ...

Оно?
Re[2]: Работа с русскими кодировками и шрифтами в С (консоль
От: Mr.Cat  
Дата: 01.10.07 04:37
Оценка:
Тьфу. Написал немного не то, но смысл — остается тот же. Делаем локаль с кодировкой консоли:
locale loc = locale(".OCP");


Далее, делаем imbue потокам:
wcout.imbue(loc);


Для сравнения символов и всяких isalpha используем локаль:
bool b = isalpha(ch, loc);

Теперь оно?
Re: Работа с русскими кодировками и шрифтами в С (консоль)
От: vasvladal  
Дата: 01.10.07 06:16
Оценка:
Здравствуйте, nemon, Вы писали:

N> Уважаемые единомышленники, будьте так добры...

N>Кто может подсказать: как можно русифицировать консоль в C да еще и на разных системах (Win98-WinXP,Linux) ?
N>Чтобы не просто потоковый ввод и вывод присутствовал, но и возможность сортировки символов, к примеру...
N>Какие библиотеки подрубить и где их найти ? К примеру, я знаю, что в WinXP нужно:
N> #include <windows.h>
N> ....
N> void main()
N> {
N> SetConsoleCP(1251); // ввод текста
N> SetConsoleOutputCP(1251); // вывод текста
N> cout<< "Здравствуй, Вася !\n"; // Output -> Здравствуй, Вася !
N> }
N>но и то ввод и вывод
N>как же быть (помимо того, что самому библиотечку накатать )

N>Заранее thanks.



Я делаю так:
#include <locale>

В main():

_wsetlocale( LC_ALL, L"Russian_Russia.ACP" );

cout<< "Здравствуй, Вася !\n";
-------------------------------------
-->Здравствуй, Вася
Re: [:]||||||[:]!
От: Roman Odaisky Украина  
Дата: 02.10.07 15:08
Оценка:
Здравствуйте, nemon, Вы писали:

N>Кто может подсказать: как можно русифицировать консоль в C да еще и на разных системах (Win98-WinXP,Linux) ?


[:]||||||[:] дремучий!

Ссылка Q&A вверху окошка на что?!
До последнего не верил в пирамиду Лебедева.
Re: Работа с русскими кодировками и шрифтами в С (консоль)
От: Tonal- Россия www.promsoft.ru
Дата: 05.10.07 16:01
Оценка:
N>Кто может подсказать: как можно русифицировать консоль в C да еще и на разных системах (Win98-WinXP,Linux) ?
В новом gcc можно задать кодировку исходника и кодировку бинарика.
Для винды это выглядит так:
g++-dw2 -finput-charset=windows-1251 -fexec-charset=ibm866 -o test test.cpp
... << RSDN@Home 1.2.0 alpha rev. 774>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.