C ++ streambuf - sungetc

Descripción

Se usa para disminuir la posición actual e intenta mover el indicador de posición actual de la secuencia de entrada controlada hacia atrás una posición al carácter que precede al actual, haciendo que el carácter en esa posición esté disponible una vez más para la siguiente operación de entrada.

Declaración

A continuación se muestra la declaración para std :: streambuf :: sungetc.

int sungetc();

Parámetros

ninguna

Valor devuelto

Devuelve el valor del nuevo carácter actual de la secuencia de entrada controlada, como un valor de tipo int.

Excepciones

Basic guarantee - si se lanza una excepción, el búfer de flujo está en un estado válido.

Carreras de datos

Modifica el objeto de búfer de flujo.

Ejemplo

En el siguiente ejemplo se explica sobre 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Please, enter some letters and then a number: