C ++ streambuf - sungetc

Descrição

É usado para diminuir a posição atual e tenta mover o indicador da posição atual da sequência de entrada controlada de volta uma posição para o caractere que precede a atual, tornando o caractere naquela posição disponível mais uma vez para a próxima operação de entrada.

Declaração

A seguir está a declaração para std :: streambuf :: sungetc.

int sungetc();

Parâmetros

Nenhum

Valor de retorno

Ele retorna o valor do novo caractere atual da sequência de entrada controlada, como um valor do tipo int.

Exceções

Basic guarantee - se uma exceção for lançada, o buffer de fluxo está em um estado válido.

Corridas de dados

Ele modifica o objeto de buffer de fluxo.

Exemplo

No exemplo a seguir, 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

Please, enter some letters and then a number: