По-видимому, это должно работать, чтобы показать, является ли строка числовой, например "12.5" == да, "abc" == нет. Однако я не получаю никаких сообщений о вводе.
std::stringstream ss("2");
double d; ss >> d;
if(ss.good()) {std::cout<<"number"<<std::endl;}
else {std::cout<<"other"<<std::endl;}