madf: (Default)
[personal profile] madf
Колись я вже цікавився темою локалей. Сьогодні LOR вирішив одну з найбільших моїх проблем при роботі з локалями у C++.

Re: std::cout вместе с std::wcout
во первых - установите локали, и для C и для C++
 // set up locale
 std::clog << "libc locale: " << std::setlocale(LC_ALL, "") << std::endl; // setup C rtl locale
 std::locale::global(std::locale("")); // setup C++ rtl global default locale
 std::clog << "std C++ locale: " << std::locale().name() << std::endl;


во вторых - установите локаль для потоков ввода-вывода

 std::cout.imbue(std::locale());
 std::cerr.imbue(std::locale());
 std::clog.imbue(std::locale());
 
 std::wcout.imbue(std::locale());
 std::wcerr.imbue(std::locale());
 std::wclog.imbue(std::locale());


и в третьих - отсоедините потоки ввода-вывода C++ от потоков ввода-вывода C библиотеки

 // for correct io with wcin/wcout
 std::ios::sync_with_stdio(false); // not needed if used only w* streams


Джерело: http://www.linux.org.ru/view-message.jsp?msgid=3691230#3691831

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2025 10:57 am
Powered by Dreamwidth Studios