O objeto wcin em C ++ é um objeto da classe wistream. É usado para aceitar a entrada do dispositivo de entrada padrão, ou seja, teclado. Ele está associado ao fluxo de entrada C padrão stdin.
Diferença entre wcin e cin
cin
usuários char
(caractere estreito) como tipo de caractere. Ele pode ser usado para caracteres ASCII e ANSI.
Para internacionalização, precisamos de strings Unicode que não se encaixam char
. wcin
usa wchar_t
(caractere largo) e pode ser usado para caracteres Unicode.
declaração wcin
wistream externo wcin;
É definido no arquivo de cabeçalho "> arquivo de cabeçalho.
O wcin
objeto tem a garantia de ser inicializado durante ou antes da primeira vez que um objeto do tipo ios_base::Init
é construído. Depois que o wcin
objeto é construído, wcin.tie()
retorna o &wcout
que significa que qualquer operação de entrada formatada em wcin força uma chamada para wcout.flush()
se algum caractere estiver pendente para saída.
O "wc" em wcin
se refere a "caractere largo" e 'em' significa "entrada", portanto wcin
significa "entrada de caractere largo". O wcin
objeto é usado junto com o operador de extração (>>) para receber um fluxo de caracteres. A sintaxe geral é:
wcin >> varName;
O operador de extração pode ser usado mais de uma vez para aceitar várias entradas como:
wcin >> var1 >> var2 >>… >> varN;
O wcin
objecto pode também ser usado com outras funções de membro, tais como getline()
, read()
, etc. Algumas das funções do membro vulgarmente utilizados são os seguintes:
wcin.get(wchar_t &ch):
Lê um caractere largo e armazena-o no cap.wcin.getline(wchar_t *buffer, int length):
Lê um fluxo de caracteres largos no buffer de string, para quando- leu comprimento de 1 caracteres ou
- quando encontra um caractere de fim de linha (' n') ou o fim do arquivo.
wcin.read(wchar_t *buffer, int n):
Lê n bytes (ou até o final do arquivo) do fluxo para o buffer.wcin.ignore(int n):
Ignora os próximos n caracteres do fluxo de entrada.wcin.eof():
Retorna um valor diferente de zero se o final do arquivo (eof) for alcançado.
Exemplo 1: wcin com operador de extração:
#include using namespace std; int main() ( wchar_t word(20); wcout <> word; wcout << word; return 0; )
Quando você executa o programa, uma possível saída será:
Digite uma palavra: kathmandu kathmandu
Exemplo 2: wcin com função de membro:
#include using namespace std; int main() ( wchar_t str(50), ch; wcout << L"Enter a string: "; wcin.getline(str, 20); wcout << L"Enter a character: "; wcin.get(ch); wcout << L"String = " << str << endl; wcout << L"Character = " << ch << endl; return 0; )
Quando você executa o programa, uma possível saída será:
Insira uma string: program using wcin Insira um caractere: h String = program using wcin Character = h
Seja cuidadoso
char16_t
e char32_t
, que foram introduzidos no C ++ 11, são recomendados para uso em vez de wchar_t
porque wchar_t
são de 16 bits em alguns sistemas e de 32 bits em outros. Isso torna difícil a portabilidade.