#include<iostream>
struct zero_buf:std::streambuf
{
zero_buf():pos(0){setg(0,0,0);}
//возвращает текущий символ потока
int underflow(){
return pos&1?'0':' ';
}
//тоже самое, но еще продвигается вперед по потоку
int uflow(){
++pos;
return pos&1?' ':'1';
}
int pos;
};
int main()
{
zero_buf buf;
//поток с бесконечным количеством нулей
std::istream stream(&buf);
//попробуем прочитать сто значений:
for(int i=0;i<100;++i)
{
int n;
stream>>n;
//одни нули, да? Но ведь строки на сто нулей нигде не хранится!
std::cout<<n<<std::endl;
}
return 0;
}