Бьерн Страуструп - Язык программирования С++. Главы 8-10 - Члены istream

ОГЛАВЛЕНИЕ


10.4.4 Члены istream

Как и для ostream, большинство функций форматирования и управления вводом находится не в классе iostream, а в базовом классе ios.
     class istream : public virtual ios {
         //...
     public:
         int         peek()
         istream&    putback(char c);

         istream&    seekg(streampos);
         istream&    seekg(streamoff, seek_dir);
         streampos   tellg();
         //...
     };
Функции позиционирования работают как и их двойники из ostream. Окончание на букву g показывает, что именно позиция используется при вводе символов из заданного потока. Буквы p и g нужны, поскольку мы можем создать производный класс iostreams из классов ostream и istream, и в нем необходимо следить за позициями ввода и вывода.

С помощью функции peek() программа может узнать следующий символ, подлежащий вводу, не затрагивая результата последующего чтения. С помощью функции putback(), как показано в $$10.3.3, можно вернуть ненужный символ назад в поток, чтобы он был прочитан в другое время.