#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main () {
string test = " first \" in \\\"quotes \" last";
istringstream strm(test);
while (!strm.eof()) {
string token;
auto startpos = strm.tellg();
strm >> quoted(token);
auto endpos = strm.tellg();
if (endpos == -1) endpos = test.length();
cout << token << ": " << startpos << " " << endpos << endl;
}
}
I2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4gKCkgewoKICAgIHN0cmluZyB0ZXN0ID0gIiAgIGZpcnN0ICAgICBcIiAgaW4gXFxcInF1b3RlcyBcIiAgbGFzdCI7CiAgICBpc3RyaW5nc3RyZWFtIHN0cm0odGVzdCk7CgogICAgd2hpbGUgKCFzdHJtLmVvZigpKSB7CgogICAgICAgIHN0cmluZyB0b2tlbjsKICAgICAgICBhdXRvIHN0YXJ0cG9zID0gc3RybS50ZWxsZygpOwogICAgICAgIHN0cm0gPj4gcXVvdGVkKHRva2VuKTsKICAgICAgICBhdXRvIGVuZHBvcyA9IHN0cm0udGVsbGcoKTsKICAgICAgICBpZiAoZW5kcG9zID09IC0xKSBlbmRwb3MgPSB0ZXN0Lmxlbmd0aCgpOwoKICAgICAgICBjb3V0IDw8IHRva2VuIDw8ICI6ICIgPDwgc3RhcnRwb3MgPDwgIiAiIDw8IGVuZHBvcyA8PCBlbmRsOwoKICAgIH0KCn0K