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: