Zakładam ten temat, ponieważ chciałbym poznać różnice pomiędzy typem char a wchar_t, gdyż ich nie dostrzegam. Nie wiem kiedy powinienem korzystać z charów, a kiedy użyć wcharów.
Dobrze wiadomo że unsigned char przyjmuje wartości od 0 do 255 i służy do reprezentowania znaków ASCII (dobrze mówię ?). Chciałem więc zobaczyć jakie wartości zawierają wchary i w tym celu napisałem taki prosty program:
#include <iostream>
using namespace std;
int main()
{
char ch = (char)0;
wchar_t wch = (wchar_t)0;
do
{
cout << ch << "\t|\t";
wcout << wch << L"\t|\t" << (int)wch << endl;
ch++; wch++;
}
while(wch != 0);
}
Po jego uruchomieniu wynika że poszczególne wartości charów są takie same jak wcharów, każda litera/znak są identyczne na tej samej pozycji, w dodatku z programu wynika że wchar również przyjmuje wartości do 255, ponieważ później pętla do .. while wychodzi z swojego zakresu.
Więc co nam daje tak na prawdę używanie wcharów ? Kiedy powinienem używać zwykłych charów a kiedy wchraów ? Do czego przeznaczony jest dany typ ? Chętnie usłyszę odpowiedzi na moje pytania oraz inne ciekawe rzeczy na temat tych typów.