C ++ streambuf - Sputbackc

La description

Il est utilisé pour remettre un caractère et il tente de ramener l'indicateur de position actuelle de la séquence d'entrée contrôlée sur le caractère qui précède celui en cours.

Déclaration

Voici la déclaration pour std :: streambuf :: sputbackc.

int sputbackc (char c);

Paramètres

c - Personnage à remettre.

Valeur de retour

Il renvoie la valeur du caractère remis, sous la forme d'une valeur de type int.

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

Dans l'exemple ci-dessous, explique std :: streambuf :: sputbackc.

#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->sputbackc (ch);
         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: