На этом шаге мы приведем пример использования итераторов потоковых буферов.
Далее представлен классический фильтр, который просто выводит все прочитанные символы при помощи итераторов потоковых буферов. Он представляет собой видоизмененную версию примера, показанного на 481 шаге:
#include <iostream> #include <iterator> using namespace std; int main() { // Итератор потокового буфера ввода для cin istreambuf_iterator<char> inpos(cin); // Итератор конца потока istreambuf_iterator<char> endpos; // Итератор потокового буфера вывода для cout ostreambuf_iterator<char> outpos(cout); // Пока итератор ввода остается действительным while (inpos != endpos) { *outpos = *inpos; // Присвоить его значение итератору вывода ++inpos; ++outpos; } }
На следующем шаге мы рассмотрим пользовательские потоковые буферы.