Предположим, под "шестнадцатеричным вводом" вы подразумеваете строку, содержащую шестнадцатеричное число, тогда это будет работать:
const char* const str = "0xFFFF";
std::istringstream iss(str);
int i;
iss >> std::hex >> i;
if(!iss && !iss.eof()) throw "dammit!";
std::cout << '"' << str << "\": " << i << "(0x" << std::hex << i << ")\n";