Partager via


basic_streambuf::underflow

Protégé, fonction virtuelle pour extraire l'élément actuel du flux d'entrée.

virtual int_type underflow( );

Valeur de retour

L'élément actuel.

Notes

La fonction membre virtuelle protégée tente d'extraire l'élément actuel ch du flux d'entrée, sans passer la position du flux actuel, et la retourne sous traits_type::to_int_type(ch). Il peut le faire dans différentes manières :

  • Si une position de lecture est disponible, ch l'élément est enregistré à l'emplacement de lecture. Pour plus d'informations sur cette opération, consultez la section Notes de basic_streambuf, classe.

  • Elle peut rendre la position de lecture disponible en allouant nouveau ou le stockage supplémentaire pour le tampon d'entrée, en lisant dans, une certaine source externe, un ou plusieurs éléments. Pour plus d'informations sur cette opération, consultez la section Notes de basic_streambuf, classe.

Si la fonction ne peut pas réussir, elle retourne traits_type::EOF() ou lève une exception. Sinon, elle renvoie l'élément actuel au flux d'entrée, converties comme décrit précédemment. Le comportement par défaut consiste à retourner traits_type::eof().

La fonction virtuelle d'underflow, avec des fonctions d'synchronisation et d'dépassement de capacité, définit les caractéristiques d'streambuf- classe dérivée. Chaque classe dérivée peut implémenter underflow différemment, mais l'interface que la classe appelant de flux de données est identique.

La fonction d'underflow le plus souvent est appelée par les fonctions publiques d'streambuf comme sgetc et sgetn lorsque la zone get est vide, mais d'autres classes, notamment les classes de flux de données, peuvent appeler underflow à tout moment.

La fonction d'underflow fournit la zone d'obtention des caractères de la source d'entrée. Si la zone d'obtention contient des caractères, underflow retourne le premier caractère. Si la zone get est vide, elle remplit la zone d'obtention et retourne le caractère suivant (qu'elle permet dans la zone d'obtention). S'il n'y a plus de caractères disponibles, la underflow retourne EOF et permet la zone d'obtention vide.

Dans la classe d'strstreambuf, underflow règle le pointeur d'egptr pour accéder au stockage qui a été alloué dynamiquement par un appel à overflow.

Configuration requise

**En-tête :**streambuf <de >

Espace de noms : std

Voir aussi

Référence

basic_streambuf, classe

iostream, programmation

iostreams, conventions