basic_streambuf::sungetc
Obtém um caractere do fluxo.
int_type sungetc( );
Valor de retorno
Retorna o caractere ou falha.
Comentários
Se uma posição de putback estiver disponível, a função de membro diminui o próximo ponteiro para o buffer de entrada e retorna traits_type::to_int_type(*gptr). No entanto, nem sempre é possível determinar o último caractere ler de modo que possa ser capturada no estado do buffer atual. Se isso for true, a função retorna pbackfail. Para evitar essa situação, mantenha-se o controle de caractere para colocar ao backup e a chamada sputbackc(ch), que não falhará caso contrário a seguir chama no início do fluxo e não tenta colocar a parte retornar mais de um caractere.
Exemplo
// basic_streambuf_sungetc.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main( )
{
using namespace std;
ifstream myfile( "basic_streambuf_sungetc.txt", ios::in );
// Read and increment
int i = myfile.rdbuf( )->sbumpc( );
cout << ( char )i << endl;
// Read and increment
i = myfile.rdbuf( )->sbumpc( );
cout << ( char )i << endl;
// Decrement, read, and do not increment
i = myfile.rdbuf( )->sungetc( );
cout << ( char )i << endl;
i = myfile.rdbuf( )->sungetc( );
cout << ( char )i << endl;
i = myfile.rdbuf( )->sbumpc( );
cout << ( char )i << endl;
}
Entrada: basic_streambuf_sungetc.txt
testing
Saída
t
e
e
t
t
Requisitos
streambuf <deCabeçalho: >
Namespace: std