C ++ streambuf - sungetc

La description

Il est utilisé pour diminuer la position actuelle et tente de déplacer l'indicateur de position actuelle de la séquence d'entrée contrôlée d'une position vers le caractère qui précède la position actuelle, rendant le caractère à cette position disponible à nouveau pour l'opération d'entrée suivante.

Déclaration

Voici la déclaration de std :: streambuf :: sungetc.

int sungetc();

Paramètres

aucun

Valeur de retour

Il renvoie la valeur du nouveau caractère courant de la séquence d'entrée contrôlée, sous la forme d'une valeur de type int.

Des exceptions

Basic guarantee - si une exception est levée, le tampon de flux est dans un état valide.

Courses de données

Il modifie l'objet de tampon de flux.

Exemple

L'exemple ci-dessous explique à propos de std :: streambuf :: sungetc.

#include <iostream>     
#include <cstdio>       

int main () {
   char ch;
   std::streambuf * pbuf = std::cin.rdbuf();

   std::cout << "Please, enter some letters and then a number: ";
   do {
      ch = pbuf->sbumpc();

      if ( (ch>='0') && (ch <='9') ) {
         pbuf->sungetc ();
         long n;
         std::cin >> n;
         std::cout << "You entered number " << n << '\n';
         break;
      }
   } while ( ch != EOF );

   return 0;
}

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

Please, enter some letters and then a number: