basic_streambuf::sungetc
Возвращает символ из потока.
int_type sungetc( );
Возвращаемое значение
Возвращает или знак или сбой.
Заметки
Если позиция putback доступна, функция-член уменьшает следующий указатель для входного буфера, и возвращает traits_type::to_int_type(*gptr).Однако не всегда можно определить последнего чтения символ так, чтобы он может быть перенаправлен в состоянии текущего буфера.Если это значение равно true, то функция возвращает pbackfail.Чтобы избежать такой ситуации необходимо отслеживание знака для помещения назад и вызвать sputbackc(ch), которое не завершится неудачей, не вызывает его в начале потока, а не пытаться разместить обратно несколько символов.
Пример
// 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;
}
Вход: basic_streambuf_sungetctxt.
testing
Output
t
e
e
t
t
Требования
заголовок: <streambuf>
std пространство имен: