
Уважаемые единомышленники, будьте так добры...
Кто может подсказать: как можно русифицировать консоль в C да еще и на разных системах (Win98-WinXP,Linux) ?
Чтобы не просто потоковый ввод и вывод присутствовал, но и возможность сортировки символов, к примеру...
Какие библиотеки подрубить и где их найти ? К примеру, я знаю, что в WinXP нужно:
#include <windows.h>
....
void main()
{
SetConsoleCP(1251); // ввод текста
SetConsoleOutputCP(1251); // вывод текста
cout<< "Здравствуй, Вася !\n"; // Output -> Здравствуй, Вася !
}
но и то ввод и вывод
как же быть (помимо того, что самому библиотечку накатать )
Заранее thanks.
Что-то в этом духе:
wcout.imbue(locale(".866"));
...
wcout << ...
...
wcout >> ...
Оно?
Тьфу. Написал немного не то, но смысл — остается тот же. Делаем локаль с кодировкой консоли:
locale loc = locale(".OCP");
Далее, делаем imbue потокам:
wcout.imbue(loc);
Для сравнения символов и всяких isalpha используем локаль:
bool b = isalpha(ch, loc);
Теперь оно?
Здравствуйте, 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";
-------------------------------------
-->Здравствуй, Вася
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>>