#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';
    }