Verificar conversão de tipo em C/C++

Publicado por Ricardo Rodrigues Lucca em 05/03/2010

[ Hits: 6.346 ]

Blog: http://aventurasdeumdevop.blogspot.com.br/

 


Verificar conversão de tipo em C/C++



Pessoal,

Por muito tempo utilizei a função *atoi* no C para converter uma string em número. Me deparei recentemente com a necessidade de entender números hexadecimais nessas strings, por ventura, ao reler a página de manual do *atoi* e ler a página do *strtoul* e *strtod* me deparei exatamente com o que precisava!

Além disso, a verificação de erro é muito melhor que o *atoi*, que se desse problema ou fosse informado zero tinha que se ter o mesmo comportamento. O exemplo segue em código C++:

int
main(void) {
   char value[] = "0xDEAD";
   char *end = NULL;
   double i;
                
   i = strtod(value, &end);

   if (i == std::numeric_limits<double>::infinity()
      || i == - std::numeric_limits<double>::infinity()
      || i == std::numeric_limits<double>::quiet_NaN()) {
         std::string err("Value `");
         err += key + "' not supported";
         throw logic_error(err);
   }

   if (*end != '{TEXTO}') {
      std::string err("Value `");
      err += key + "' is not not numeric at " + end;
      throw logic_error(err);
   }

   return 0;
}

Os includes do teste são stdexcept e climits. Sem .h como é costume do C++.

[]'s

Outras dicas deste autor

Bit Torrent no Linux

Como configurar Gerrit e GitLab para trabalharem juntos

ls exibindo somente diretórios

Pérolas do desconhecido, comandos não tão conhecidos que podem ser úteis

Tabela ASCII

Leitura recomendada

Usando "sscanf" para Dividir String com Delimitadores em C

system("pause") para Linux

Lista de IDEs para Programação em Qualquer Distro

gcc: fatal error: cannot execute 'cc1plus': execvp: [...] - Como resolver no Linux Mint 20

Compilando/Instalando o novo Cairo-Dock no Sabayon

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts