#include <iostream>
#include <sstream>
#include <string>
struct Text
{
std::string t_;
};
std::istream& operator>>(std::istream& is, Text& t)
{
is >> std::skipws;
for (char c: t.t_)
if (is.get() != c)
{
is.setstate(std::ios::failbit);
break;
}
return is;
}
int main()
{
Text t{"ignore"};
std::istringstream iss("ignore3.14ignore2.718");
double pi, e;
if (iss >> t >> pi >> t >> e)
std::cout << "pi " << pi << ", e " << e << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCiAgICBzdHJ1Y3QgVGV4dAogICAgewogICAgICAgIHN0ZDo6c3RyaW5nIHRfOwogICAgfTsKCiAgICBzdGQ6OmlzdHJlYW0mIG9wZXJhdG9yPj4oc3RkOjppc3RyZWFtJiBpcywgVGV4dCYgdCkKICAgIHsKICAgICAgICBpcyA+PiBzdGQ6OnNraXB3czsKICAgICAgICBmb3IgKGNoYXIgYzogdC50XykKICAgICAgICAgICAgaWYgKGlzLmdldCgpICE9IGMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlzLnNldHN0YXRlKHN0ZDo6aW9zOjpmYWlsYml0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGlzOwogICAgfQogICAgCiAgICBpbnQgbWFpbigpCiAgICB7CiAgICAJVGV4dCB0eyJpZ25vcmUifTsKICAgIAlzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKCJpZ25vcmUzLjE0aWdub3JlMi43MTgiKTsKICAgIAkKICAgIAlkb3VibGUgcGksIGU7CiAgICAJaWYgKGlzcyA+PiB0ID4+IHBpID4+IHQgPj4gZSkKICAgIAkgICAgc3RkOjpjb3V0IDw8ICJwaSAiIDw8IHBpIDw8ICIsIGUgIiA8PCBlIDw8ICdcbic7CiAgICB9