Partager via


basic_istream::operator>>

Appelle une fonction dans le flux d'entrée ou lit les données mises en forme à partir du flux d'entrée.

basic_istream& operator>>(
   basic_istream& (*_Pfn)(basic_istream&)
);
basic_istream& operator>>(
   ios_base& (*_Pfn)(ios_base&)
);
basic_istream& operator>>(
   basic_ios<Elem, Tr>& (*_Pfn)(basic_ios<Elem, Tr>&))
;
basic_istream& operator>>(
   basic_streambuf<Elem, Tr> *_Strbuf
);
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>>(
   void *& _Val
);
basic_istream& operator>>(
   float& _Val
);
basic_istream& operator>>(
   double& _Val
);
basic_istream& operator>>(
   long double& _Val
);

Paramètres

  • _Pfn
    Pointeur fonction.

  • _Strbuf
    Objet de type stream_buf.

  • _Val
    Valeur à lire à partir du flux de données.

Valeur de retour

Le flux de données (*this).

Notes

L'en-tête <istream> définit également plusieurs opérateurs globaux d'exctraction. Pour plus d'informations, consultez operator>> (<istream>).

La première fonction membre garantit qu'une expression de format istr >> ws appelle ws(istr), puis retourne *this. Les deuxième et troisième fonctions garantissent que d'autres manipulateurs, tels que hex, se comportent de la même façon. Les fonctions restantes constituent les fonctions d'entrée mises en forme.

La fonction :

basic_istream& operator>>(
    basic_streambuf<Elem, Tr> *_Strbuf);

extrait des éléments, si le _Strbuf n'est pas un pointeur null, et les insère dans _Strbuf. L'extraction s'arrête en fin de fichier. Elle cesse également, sans extraire l'élément en question, si une insertion échoue ou lève une exception (qui est interceptée mais non relancée). Si la fonction n'extrait pas d'élément, elle appelle setstate(failbit). Dans tous les cas, la fonction retourne *this.

La fonction :

basic_istream& operator>>(bool& _Val);

extrait un champ et le convertit en valeur booléenne en appelant use_facet <num_get<Elem, InIt>(getloc). get(InIt( rdbuf), Init(0), *this, getloc, _Val). Ici, InIt est défini comme istreambuf_iterator<Elem, Tr>. La fonction retourne *this.

Les fonctions :

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>>(void *& _Val);

chacune extrait un champ et le convertit en une valeur numérique en appelant use_facet<num_get<Elem, InIt>(getloc). get(InIt( rdbuf), Init(0), *this, getloc, _Val). Ici, InIt est défini comme istreambuf_iterator<Elem, Tr>, et _Val est de type long*, unsigned long,* ou void * si nécessaire.

Si la valeur convertie ne peut pas être représentée comme type _Val, la fonction appelle setstate(failbit). Dans tous les cas, la fonction retourne *this.

Les fonctions :

basic_istream& operator>>(float& _Val);
basic_istream& operator>>(double& _Val);
basic_istream& operator>>(long double& _Val);

chacune extrait un champ et le convertit en une valeur numérique en appelant use_facet<num_get<Elem, InIt>(getloc). get(InIt( rdbuf), Init(0), *this, getloc, _Val). Ici, InIt est défini comme istreambuf_iterator<Elem, Tr>, et _Val est de type double ou long double si nécessaire.

Si la valeur convertie ne peut pas être représentée comme type _Val, la fonction appelle setstate(failbit). Dans tous les cas, elle retourne *this.

Exemple

// istream_basic_istream_op_is.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

ios_base& hex2( ios_base& ib ) 
{
   ib.unsetf( ios_base::dec );
   ib.setf( ios_base::hex );
   return ib;
}

basic_istream<char, char_traits<char> >& somefunc(basic_istream<char, char_traits<char> > &i)
{
   if ( i == cin ) 
   {
      cerr << "i is cin" << endl;
   }
   return i;
}

int main( ) 
{
   int i = 0;
   cin >> somefunc;
   cin >> i;
   cout << i << endl;
   cin >> hex2;
   cin >> i;
   cout << i << endl;
}

Entrée

10
10

Résultat de l'exemple

i is cin
10
10
10
16

Configuration requise

En-tête: <istream>

Espace de noms : std

Voir aussi

Référence

basic_istream, classe

operator>> (<istream>)

iostream, programmation

iostreams, conventions