Bibliothèque C ++ basic_ios - opérateur >>

La description

Il est utilisé pour extraire une entrée formatée.

Cet opérateur (>>) appliqué à un flux d'entrée est appelé opérateur d'extraction -

  • arithmetic types- Extrait et analyse les caractères séquentiellement du flux pour les interpréter comme la représentation d'une valeur du type approprié, qui est stockée comme la valeur de val. En interne, la fonction accède à la séquence d'entrée en construisant d'abord un objet sentinelle (avec noskipws défini sur false). Puis (si bon), il appelle num_get :: get (en utilisant la locale sélectionnée du flux) pour effectuer à la fois l'extraction et les opérations d'analyse, en ajustant les indicateurs d'état internes en conséquence. Enfin, il détruit l'objet sentinelle avant de revenir.

  • stream buffers - Extrait autant de caractères que possible du flux et les insère dans la séquence de sortie contrôlée par l'objet tampon de flux pointé par sb (le cas échéant), jusqu'à ce que la séquence d'entrée soit épuisée ou que la fonction ne parvienne pas à s'insérer dans l'objet pointé par sb .

  • manipulators- Appelle pf (* this), où pf peut être un manipulateur. Les manipulateurs sont des fonctions spécialement conçues pour être appelées lorsqu'elles sont utilisées avec cet opérateur. Cette opération n'a aucun effet sur la séquence d'entrée et n'extrait aucun caractère (sauf si le manipulateur lui-même le fait, comme ws).

Déclaration

Voici la déclaration pour 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&));

Paramètres

  • val- Objet dans lequel la valeur représentée par les caractères extraits est stockée. Notez que le type de cet argument (ainsi que les indicateurs de format du flux) influence ce qui constitue une représentation valide.
  • sb - Pointeur vers un objet basic_streambuf sur la séquence de sortie contrôlée duquel les caractères sont copiés.

  • pf - Une fonction qui prend et renvoie un objet de flux.

Valeur de retour

Renvoie l'objet basic_istream (* this).

Des exceptions

Basic guarantee - si une exception est levée, l'objet est dans un état valide.

Courses de données

Modifie val ou l'objet pointé par sb.

Exemple

Dans l'exemple ci-dessous pour 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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