Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

wstring, wchar_t i iostream?

[es] :: C/C++ programiranje :: wstring, wchar_t i iostream?

[ Pregleda: 1987 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tomkeus

Član broj: 40478
Poruke: 503
*.vdial.verat.net.



+6 Profil

icon wstring, wchar_t i iostream?15.05.2005. u 10:14 - pre 231 meseci
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.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dyn.optonline.net.



+6 Profil

icon Re: wstring, wchar_t i iostream?16.05.2005. u 01:43 - pre 231 meseci
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
 
Odgovor na temu

tomkeus

Član broj: 40478
Poruke: 503
*.vdial.verat.net.



+6 Profil

icon Re: wstring, wchar_t i iostream?16.05.2005. u 11:53 - pre 231 meseci
Hoćeš da kažeš da u standardnoj biblioteci ne postoji način za unicode output? :(
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.biz.mindspring.com.



+6 Profil

icon Re: wstring, wchar_t i iostream?16.05.2005. u 20:02 - pre 231 meseci
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.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.biz.mindspring.com.



+6 Profil

icon Re: wstring, wchar_t i iostream?16.05.2005. u 20:27 - pre 231 meseci
Č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.
 
Odgovor na temu

tomkeus

Član broj: 40478
Poruke: 503
*.neobee.net.



+6 Profil

icon Re: wstring, wchar_t i iostream?17.05.2005. u 10:01 - pre 231 meseci
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.
 
Odgovor na temu

[es] :: C/C++ programiranje :: wstring, wchar_t i iostream?

[ Pregleda: 1987 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.