Só podiamos mencionar o tipo de caractere multi-byte após termos conhecimento dos tipos inteiro e suas modificações.
Mencionamos a existência de alguns character encodings que utilizam mais de um byte para representar caracteres. É o caso dos encodings multi-byte, geralmente implementados em um programa multilinguagem.
Na linguagem C, o tipo wchar_t era definido na biblioteca do C, ou seja, não era uma implementação intrínseca da linguagem. No C++, o tipo wchar_t é um tipo embutido à linguagem. O tamanho deste tipo depende também da implementação. Ele ocupa 16 bits no compilador VC++ (idêntico a um unsigned short).
Para escrever caracteres literais multi-byte, deve-se preceder com L. Veja o exemplo abaixo:
Temos quatro variáveis. firstchar é um caractere, firststring é uma string, mychar é um caractere multi-byte e mystring é uma string multi-byte. Você deve estar se perguntando o motivo do * após o tipo das strings, mas isto não importa agora, estudaremos ponteiros em aulas posteriores. Observe que o caractere multi-byte e a string multi-byte são precedidas por L, para que o compilador entenda que se trata de caracteres multi-byte. No caso do VC++, um caractere multi-byte ocupa 16 bits (2 bytes), então apesar de a variável mychar representar apenas um caractere, este caractere ocupa 2 bytes por ser multi-byte.
Observe também que usamos, ao invés do objeto cout, o objeto wcout para imprimir os caracteres multi-byte. E ainda existem os objetos específicos para programas multi-byte: wcin (equivalente a cin), wcerr (equivalente a err) e wclog (equivalente a clog), embora não tenhamos visto o significado de todos eles.
Para uma tabela completa dos tipos de dados e suas características no VC++ clique no link a seguir: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Veremos na próxima aula mais tipos de dados e conceitos sobre variáveis.
Quaisquer críticas, sugestões ou correções são aceitas.
Créditos pela Matéria: TaTuSoft
Mencionamos a existência de alguns character encodings que utilizam mais de um byte para representar caracteres. É o caso dos encodings multi-byte, geralmente implementados em um programa multilinguagem.
Na linguagem C, o tipo wchar_t era definido na biblioteca do C, ou seja, não era uma implementação intrínseca da linguagem. No C++, o tipo wchar_t é um tipo embutido à linguagem. O tamanho deste tipo depende também da implementação. Ele ocupa 16 bits no compilador VC++ (idêntico a um unsigned short).
Para escrever caracteres literais multi-byte, deve-se preceder com L. Veja o exemplo abaixo:
1.
#include <iostream>
2.
3.
using namespace std;
4.
5.
int main ()
6.
{
7.
char firstchar = 'a';
8.
char *firststring = "hi";
9.
10.
wchar_t mychar = L'a';
11.
wchar_t *mystring = L"hello";
12.
13.
std::cout << firstchar << std::endl;
14.
std::cout << firststring << std::endl;
15.
16.
std::wcout << mychar << std::endl;
17.
std::wcout << mystring << std::endl;
18.
19.
return 0;
20.
}
#include <iostream>
2.
3.
using namespace std;
4.
5.
int main ()
6.
{
7.
char firstchar = 'a';
8.
char *firststring = "hi";
9.
10.
wchar_t mychar = L'a';
11.
wchar_t *mystring = L"hello";
12.
13.
std::cout << firstchar << std::endl;
14.
std::cout << firststring << std::endl;
15.
16.
std::wcout << mychar << std::endl;
17.
std::wcout << mystring << std::endl;
18.
19.
return 0;
20.
}
Observe também que usamos, ao invés do objeto cout, o objeto wcout para imprimir os caracteres multi-byte. E ainda existem os objetos específicos para programas multi-byte: wcin (equivalente a cin), wcerr (equivalente a err) e wclog (equivalente a clog), embora não tenhamos visto o significado de todos eles.
Para uma tabela completa dos tipos de dados e suas características no VC++ clique no link a seguir: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Veremos na próxima aula mais tipos de dados e conceitos sobre variáveis.
Quaisquer críticas, sugestões ou correções são aceitas.
Créditos pela Matéria: TaTuSoft