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_sungetc.txt
testing
Output
t
e
e
t
t
Требования
Заголовок:<streambuf>
Пространство имен: std