Witam
Napisałem taki oto programik testowy:
//---POCZĄTEK PROGRAMU--------
#include <string>
#include <iostream>
int main()
{
std::wcout<<std::endl<<std::endl;
std::wcout<<L"Podaj to co chcesz wyswietlic: ";
std::wstring wtmp;
std::getline(std::wcin, wtmp);
std::wcout<<wtmp<<std::endl;
std::wcout<<L"Dlugosc podanego przez Ciebie napisu to: "<<wtmp.size()<<std::endl<<std::endl;
std::string napis = "ąęść";
std::cout<<"Napis: "<<napis<<std::endl;
std::cout<<"Długość: "<<napis.size()<<std::endl;
for (std::string::size_type i = 0; i < napis.size(); i++)
{
int hex = static_cast<unsigned char>(napis[i]);
std::cout<<std::hex<<hex<<" ";
}
std::cout<<std::endl<<std::endl;
std::cout<<"Podaj \"ąęść\": ";
std::cin>>napis;
std::cout<<"Napis: "<<napis<<std::endl;
std::cout<<"Długość: "<<napis.size()<<std::endl;
for (std::string::size_type i = 0; i < napis.size(); i++)
{
int hex = static_cast<unsigned char>(napis[i]);
std::cout<<std::hex<<hex<<" ";
}
std::cout<<std::endl<<std::endl;
std::wstring wnapis = L"ąęść";
std::cout<<"Napis: ";
std::wcout<<wnapis;
std::cout<<std::endl;
std::cout<<"Dlugosc: "<<wnapis.size()<<std::endl;
for (std::string::size_type i = 0; i < napis.size(); i++)
{
std::cout<<std::hex<<wnapis[i]<<" ";
}
std::cout<<std::endl<<std::endl;
std::cout<<"Podaj \"ąęść\": ";
std::wcin>>wnapis;
std::cout<<"Napis: ";
std::wcout<<wnapis;
std::cout<<std::endl;
std::cout<<"Dlugosc: "<<wnapis.size()<<std::endl;
for (std::string::size_type i = 0; i < napis.size(); i++)
{
std::cout<<std::hex<<wnapis[i]<<" ";
}
std::cout<<std::endl;
std::wcout<<std::endl<<std::endl;
return 0;
}
//-----KONIEC PROGRAMU---------
W wyniku otrzymałem:
//-------WYNIK--------
> g++ -Wall -o main main.cc && ./main
Podaj to co chcesz wyswietlic: kośćią
kośćią
Dlugosc podanego przez Ciebie napisu to: 9
Napis: ąęść
Długość: 8
c4 85 c4 99 c5 9b c4 87
Podaj "ąęść": ąęść
Napis: ąęść
Długość: 8
c4 85 c4 99 c5 9b c4 87
Napis:
Dlugosc: 4
105 119 15b 107
Podaj "ąęść": ąęść
Napis:
Dlugosc: 8
c4 85 c4 99 c5 9b c4 87
>
//-----KONIEC WYNIKU---------
I teraz gorąca prośba... Niech ktoś mi powie o co tu chodzi....:|:|
Dodam, że lokalizacja jest ustawiona na UTF-8 (FreeBSD), plik źródłowy jest w UTF-8 (z tego co wiem kompilator pobiera zmienne z lokalizacji (np. LC_ALL) żeby okreslić w jakim kodowaniu mają być stringi w programie (binarce, execu).
W związku z tym w ogóle nie rozumiem o co w tym chodzi:/