#include <iostream>
#include <sstream>
int main()
{
std::stringstream ifs;
ifs.unsetf(std::ios::skipws);
ifs.str("word by word\n this is test");
std::string word;
char ws;
bool isWord = false;
while ((isWord = static_cast<bool>(ifs >> word)) || (ifs.clear(), ifs >> ws))
{
std::cout << "word: '";
if (isWord)
std::cout << word;
else
std::cout << ws;
std::cout << "'\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmludCBtYWluKCkKewoJc3RkOjpzdHJpbmdzdHJlYW0gaWZzOwoJaWZzLnVuc2V0ZihzdGQ6Omlvczo6c2tpcHdzKTsKCWlmcy5zdHIoIndvcmQgYnkgd29yZFxuIHRoaXMgaXMgdGVzdCIpOwoJCglzdGQ6OnN0cmluZyB3b3JkOwoJY2hhciB3czsKCWJvb2wgaXNXb3JkID0gZmFsc2U7Cgl3aGlsZSAoKGlzV29yZCA9IHN0YXRpY19jYXN0PGJvb2w+KGlmcyA+PiB3b3JkKSkgfHwgKGlmcy5jbGVhcigpLCBpZnMgPj4gd3MpKQoJewoJCXN0ZDo6Y291dCA8PCAid29yZDogJyI7CgkJaWYgKGlzV29yZCkKCQkJc3RkOjpjb3V0IDw8IHdvcmQ7CgkJZWxzZQoJCQlzdGQ6OmNvdXQgPDwgd3M7CgkJc3RkOjpjb3V0IDw8ICInXG4iOwoJfQoJCglyZXR1cm4gMDsKfQ==