Здравствуйте, fk0, Вы писали:
fk0> И кстати применение wprintf ломает работу байт-ориентированных фуннкций вроде printf (просто не выводится). Не всё тут так хорошо...
Глупость, ни чего не ломается, нужно просто "доработать напильником"
// set C/C++ locale
cout << "set system console locale..."
<< endl
<< "C locale: "
<< setlocale(LC_ALL, "")
<< endl;
locale::global(locale(""));
cout << "C++ locale: "
<< locale().name().c_str()
<< endl
<< endl;
//--------------------------------------------------------------------------
// set C++ stream locale
cout.imbue(locale());
clog.imbue(locale());
cerr.imbue(locale());
wcout.imbue(locale());
wclog.imbue(locale());
wcerr.imbue(locale());
//--------------------------------------------------------------------------
// don't sync. c and c++ streams
ios::sync_with_stdio(false);
//--------------------------------------------------------------------------
После этих "шаманств" вывод в консоль и char-строк и wchar_t-строк проблем не вызовет.