ch*****@bonbon.net (cherico) wrote:
I'd like to read stings from cin and put them
in stringstream.
If you read strings and put them into a stringstream you are implicitly
removing whitespace: is this by design or by accident?
stringstream ss ;
cin >> ss ;
Here are a few alternatives which do not remove whitespace:
std::stringstream ss;
ss << std::cin.rdbuf();
std::copy(std::istreambuf_iterator<char>(std::cin) ,
std::istreambuf_iterator<char>(),
std::ostreambuf_iterator<char>(ss));
.... and a few alternatives which do remove whitespace:
std::copy(std::istream_iterator<std::string>(std:: cin),
std::istream_iterator<std::string>(),
std::ostream_iterator<std::string>(ss));
bool my_isspace(char c) { return std::isspace(c); } // in namespace scope
std::remove_copy_if(std::istreambuf_iterator<char> (std::cin),
std::istreambuf_iterator<char>(),
std::ostreambuf_iterator<char>(ss), my_isspace);
--
<mailto:di***********@yahoo.com> <http://www.dietmar-kuehl.de/>
<http://www.contendix.com> - Software Development & Consulting