#include <iostream>
#include <sstream>
#include <string>
void f(const char* p)
{
std::istringstream iss(p);
int num;
if (iss >> num)
std::cout << num << " (an int)\n";
else
{
iss.clear(); // recover from parsing int failure above
std::string word;
if (iss >> word)
std::cout << word << " (a string)\n";
}
}
int main()
{
f("five");
f("35");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCnZvaWQgZihjb25zdCBjaGFyKiBwKQp7CglzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzKHApOwoJaW50IG51bTsKCWlmIChpc3MgPj4gbnVtKQoJICAgIHN0ZDo6Y291dCA8PCBudW0gPDwgIiAoYW4gaW50KVxuIjsKCWVsc2UKCXsKCQlpc3MuY2xlYXIoKTsgLy8gcmVjb3ZlciBmcm9tIHBhcnNpbmcgaW50IGZhaWx1cmUgYWJvdmUKCQlzdGQ6OnN0cmluZyB3b3JkOwoJCWlmIChpc3MgPj4gd29yZCkKCSAgICAgICAgc3RkOjpjb3V0IDw8IHdvcmQgPDwgIiAoYSBzdHJpbmcpXG4iOwoJfQp9CQoKaW50IG1haW4oKQp7CglmKCJmaXZlIik7CglmKCIzNSIpOwp9