[ tomkeus @ 15.05.2005. 10:14 ] @
Do sada nikada nisam koristio ni wstring ni wchar_t i onda juče kada su mi po prvi put zatrebali za nešto neprijatno sam se iznenadio. Name na sledeći kod:
Code:

wstring ja=L"Milan Tomić";
cout<<ja;

kompajler mi izbaci da operator << nije definisan za tip wstring. Isto kada probam da izbacim neki wchar_t na konzolu kao rezultat dobijem celobrojnu vrednost umesto karaktera. (kompajlirao sam na microsoftovom kopajleru i na mingw). Dokumentacija ništa ne kaže tim povodom a ni na internetu nisam uspeo da nađem ništa što bi mi bilo od koristi. Jel može neko da mi objasni šta se ovde dešava.
[ Dragi Tata @ 16.05.2005. 01:43 ] @
Code:
wcout << ja;


će da se kompajlira, ali ne očekuj da će da ti ispiše "ć" na konzoli. Za tako nešto pogledaj npr ovde:

http://blogs.msdn.com/junfeng/archive/2004/02/25/79621.aspx
[ tomkeus @ 16.05.2005. 11:53 ] @
Hoćeš da kažeš da u standardnoj biblioteci ne postoji način za unicode output? :(
[ Dragi Tata @ 16.05.2005. 20:02 ] @
Pre svega, C++ standard uopšte ne poznaje Unicode (mada se najavljuju neke izmene s tim u vezi), već samo "uske" i "široke" znakove. Kada se vrši upis znakova u ma koji fajl (računajući i konzolu), vrši se konverzija širokih znakova u uske, a način na koji se to radi nije propisan standardom, već je ostavljen konkretnim implementacijama. Možeš da vidiš nešto od konkretnih problema s tim u vezi ovde:

http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp

Međutim, ne očekuj ni da ćeš na tom linku da nađeš rešenje za štampanje Uicode na konzolu (već samo u fajl), jer postoji bug u CRT-u:

http://lab.msdn.microsoft.com/...0a-d359-4eb6-a448-1280ba10151b

Ukratko, ili koristi CP 1250, ili ako hoćeš Unicode onda ConsoleWriteW.
[ Dragi Tata @ 16.05.2005. 20:27 ] @
Čisto da se ne obeshrabriš, evo ga kod za CP 1250 varijantu:

Code:

#include <iostream>
#include <locale>

using namespace std;
int main()
{
    cout.imbue(locale(".1250"));
    cout << "ABCćčšđ";
}


Otvori konzolu, namesti da joj font bude "Lucinda Console", udari chcp 1250 i startuj program, pa ćeš da vidiš naša slova u konzoli.
[ tomkeus @ 17.05.2005. 10:01 ] @
OK. Hvala. Meni u suštini treba čitanje iz fajla i pisanje (imam neke konfiguracione fajlove), ali dok ne proverim kako cela stvar radi trebaju mi podaci i na konzoli.