Biblioteca C ++ basic_ios - operador >>
Descrição
É usado para extrair a entrada formatada.
Este operador (>>) aplicado a um fluxo de entrada é conhecido como operador de extração -
arithmetic types- Extrai e analisa caracteres sequencialmente do fluxo para interpretá-los como a representação de um valor do tipo apropriado, que é armazenado como o valor de val. Internamente, a função acessa a sequência de entrada construindo primeiro um objeto sentinela (com noskipws definido como falso). Então (se for bom), ele chama num_get :: get (usando a localidade selecionada do fluxo) para realizar as operações de extração e análise, ajustando os sinalizadores de estado interno de acordo. Finalmente, ele destrói o objeto sentinela antes de retornar.
stream buffers - Extrai o máximo de caracteres possível do fluxo e os insere na sequência de saída controlada pelo objeto de buffer de fluxo apontado por sb (se houver), até que a sequência de entrada se esgote ou a função falhe ao inserir no objeto apontado por sb .
manipulators- Chama pf (* this), onde pf pode ser um manipulador. Manipuladores são funções projetadas especificamente para serem chamadas quando usadas com este operador. Esta operação não tem efeito na seqüência de entrada e não extrai nenhum caractere (a menos que o próprio manipulador faça, como ws).
Declaração
A seguir está a declaração para std :: basic_istream :: operator >>
C ++ 98
arithmetic types (1)
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));
C ++ 11
arithmetic types (1)
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (long long& val);
basic_istream& operator>> (unsigned long long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));
Parâmetros
- val- Objeto onde o valor que os caracteres extraídos representam é armazenado. Observe que o tipo deste argumento (junto com os sinalizadores de formato do fluxo) influencia o que constitui uma representação válida.
sb - Ponteiro para um objeto basic_streambuf em cuja seqüência de saída controlada os caracteres são copiados.
pf - Uma função que recebe e retorna um objeto de fluxo.
Valor de retorno
Retorna o objeto basic_istream (* this).
Exceções
Basic guarantee - se uma exceção for lançada, o objeto está em um estado válido.
Corridas de dados
Modifica val ou o objeto apontado por sb.
Exemplo
No exemplo abaixo para std :: basic_istream :: operator >>
#include <iostream>
int main () {
int n;
std::cout << "Enter a number: ";
std::cin >> n;
std::cout << "You have entered: " << n << '\n';
std::cout << "Enter a hexadecimal number: ";
std::cin >> std::hex >> n;
std::cout << "Its decimal equivalent is: " << n << '\n';
return 0;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
Enter a number: 11
You have entered: 11
Enter a hexadecimal number: 5E
Its decimal equivalent is: 94