#include <iostream>
#include <sstream>
int main()
{
for (auto s : { "3 4 -", "3 4" } )
{
std::istringstream stream(s);
stream.exceptions( std::ios::failbit | std::ios::badbit );
int n;
try
{
while (stream) { stream >> n; std::cout << "n " << n << '\n'; }
}
catch (...)
{
std::cout << "caught, fail " << stream.fail()
<< ", eof " << stream.eof()
<< ", bad " << stream.bad() << "\n";
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmludCBtYWluKCkKewoJZm9yIChhdXRvIHMgOiB7ICIzIDQgLSIsICIzIDQiIH0gKQoJewoJICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gc3RyZWFtKHMpOwogICAgICAgICBzdHJlYW0uZXhjZXB0aW9ucyggc3RkOjppb3M6OmZhaWxiaXQgfCBzdGQ6Omlvczo6YmFkYml0ICk7CgkgICAgIGludCBuOwoJICAgICB0cnkKCSAgICAgewoJICAgICAgICAgd2hpbGUgKHN0cmVhbSkgeyBzdHJlYW0gPj4gbjsgc3RkOjpjb3V0IDw8ICJuICIgPDwgbiA8PCAnXG4nOyB9CgkgICAgIH0KCSAgICAgY2F0Y2ggKC4uLikKCSAgICAgewoJCSAgICAgc3RkOjpjb3V0IDw8ICJjYXVnaHQsIGZhaWwgIiA8PCBzdHJlYW0uZmFpbCgpCgkJICAgICAgICAgICAgICAgPDwgIiwgZW9mICIgPDwgc3RyZWFtLmVvZigpCgkJICAgICAgICAgICAgICAgPDwgIiwgYmFkICIgPDwgc3RyZWFtLmJhZCgpIDw8ICJcbiI7CgkgICAgIH0KCX0KfQ==