C ++ wcin - Biblioteca padrão C ++

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

cinusuá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. wcinusa 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 wcinobjeto 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 wcinobjeto é construído, wcin.tie()retorna o &wcoutque 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 wcinse refere a "caractere largo" e 'em' significa "entrada", portanto wcinsignifica "entrada de caractere largo". O wcinobjeto é 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 wcinobjecto 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_te char32_t, que foram introduzidos no C ++ 11, são recomendados para uso em vez de wchar_tporque wchar_tsão de 16 bits em alguns sistemas e de 32 bits em outros. Isso torna difícil a portabilidade.

Artigos interessantes...