Поделиться через


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

См. также

Ссылки

Класс basic_streambuf

Программирование iostream

Соглашения iostreams