Mam taki kod:
#include <iostream>
//windows:
#ifdef _WIN32
void wrt(const wchar_t* text)
{
setlocale(LC_ALL, "polish");
std::wcout<<text;
}
//linux:
#elif defined (__unix__)
#include <cstdlib>
void wrt(const wchar_t* text)
{
setlocale(LC_ALL, "pl_PL");
char * dst = new char[wcslen(text)];
wcstombs(dst, text, wcslen(text));
std::cout<<dst;
delete [] dst;
}
#endif
int main()
{
wrt(L"ążźśćłóń");
}
Na windosie wszystko gra ale na linuxie nic nie wypisuje. Gdy debugowałem metodą print it to zawsze mi coś wypisywało oprócz podanego ciągu znaku. Wygląda jakby dst było puste