Biblioteca C ++ basic_ios - operador >>

Descripción

Se utiliza para extraer entradas formateadas.

Este operador (>>) aplicado a un flujo de entrada se conoce como operador de extracción:

  • arithmetic types- Extrae y analiza los caracteres secuencialmente del flujo para interpretarlos como la representación de un valor del tipo adecuado, que se almacena como el valor de val. Internamente, la función accede a la secuencia de entrada construyendo primero un objeto centinela (con noskipws establecido en falso). Luego (si es bueno), llama num_get :: get (usando la configuración regional seleccionada de la secuencia) para realizar tanto la extracción como las operaciones de análisis, ajustando los indicadores de estado internos en consecuencia. Finalmente, destruye el objeto centinela antes de regresar.

  • stream buffers - Extrae tantos caracteres como sea posible de la secuencia y los inserta en la secuencia de salida controlada por el objeto de búfer de secuencia señalado por sb (si lo hay), hasta que la secuencia de entrada se agota o la función no se inserta en el objeto señalado por sb .

  • manipulators- Llama a pf (* this), donde pf puede ser un manipulador. Los manipuladores son funciones diseñadas específicamente para ser llamadas cuando se utilizan con este operador. Esta operación no tiene ningún efecto en la secuencia de entrada y no extrae caracteres (a menos que lo haga el manipulador, como ws).

Declaración

A continuación se muestra la declaración 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 donde se almacena el valor que representan los caracteres extraídos. Observe que el tipo de este argumento (junto con los indicadores de formato de la secuencia) influye en lo que constituye una representación válida.
  • sb - Puntero a un objeto basic_streambuf en cuya secuencia de salida controlada se copian los caracteres.

  • pf - Una función que toma y devuelve un objeto de flujo.

Valor devuelto

Devuelve el objeto basic_istream (* this).

Excepciones

Basic guarantee - si se lanza una excepción, el objeto está en un estado válido.

Carreras de datos

Modifica val o el objeto señalado por sb.

Ejemplo

En el siguiente ejemplo 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Enter a number: 11
You have entered: 11
Enter a hexadecimal number: 5E
Its decimal equivalent is: 94