How to use filtering streams with cin?

Hello All, I have trouble in using filtering streams with cin in the following code: #include <boost/iostreams/filtering_stream.hpp> #include <iostream> namespace io = boost::iostreams; int main() { io::filtering_istream in; in.push(std::cin); int i; in >> i; std::cout << i << '\n'; in >> i; std::cout << i << '\n'; } I have to input two integers and ctrl+z to terminate the input from screen. How can I input 1 integer, output it, then input another one and output it, which like the conventional std::cin? Thank you very much for your kind help! Best regards, Jayden

On 11/15/11 22:26, Jayden Shui wrote:
Hello All,
I have trouble in using filtering streams with cin in the following code:
#include <boost/iostreams/filtering_stream.hpp> #include <iostream>
namespace io = boost::iostreams;
int main() { io::filtering_istream in; in.push(std::cin);
int i; in >> i; std::cout << i << '\n'; in >> i; std::cout << i << '\n'; }
I have to input two integers and ctrl+z to terminate the input from screen. How can I input 1 integer, output it, then input another one and output it, which like the conventional std::cin?
Hi Jayden, It sounds like filtering_istream, in, is buffering its input. Is there some filtering_istream option for unbuffered input? If so, try that. HTH, -Larry

Hi Larray, I get it by setting a 0 buffer size. Thanks a lot! Best regards, Jayden On Wed, Nov 16, 2011 at 6:39 AM, Larry Evans <cppljevans@suddenlink.net>wrote:
On 11/15/11 22:26, Jayden Shui wrote:
Hello All,
I have trouble in using filtering streams with cin in the following code:
#include <boost/iostreams/filtering_stream.hpp> #include <iostream>
namespace io = boost::iostreams;
int main() { io::filtering_istream in; in.push(std::cin);
int i; in >> i; std::cout << i << '\n'; in >> i; std::cout << i << '\n'; }
I have to input two integers and ctrl+z to terminate the input from screen. How can I input 1 integer, output it, then input another one and output it, which like the conventional std::cin?
Hi Jayden,
It sounds like filtering_istream, in, is buffering its input. Is there some filtering_istream option for unbuffered input? If so, try that.
HTH,
-Larry
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Jayden Shui
-
Larry Evans