In alternativa puoi usare un istringstream e far fare tutto a lui:
. Questo metodo di solito conviene quando non si vuole semplicemente verificare se una stringa è un numero ma anche ottenere il numero rappresentato dalla stringa.codice:double numero; std::istringstream is(stringa); is>>numero; if(is.fail() || !is.eof()) //errore di estrazione o estrazione fermata prima della fine della stringa { //la stringa non è un numero }