Puedo hacer esto:Conseguir un número hexadecimal en un programa a través de la línea de comandos
int main(int argc, char** argv) {
unsigned char cTest = 0xff;
return 0;
}
Pero ¿cuál es la manera correcta para obtener un número hexadecimal en el programa a través de la línea de comandos?
unsigned char cTest = argv[1];
no hace el truco. Eso produce una inicialización que hace un entero desde el puntero sin una advertencia de fundición.
argumentos de línea de comandos son siempre ** ** cuerdas. Algunas plataformas pueden hacer que sean Unicode, en cuyo caso un simple 'strtol' no funcionará. – dirkgently
@dirkgently: ¿en qué caso 'mbstol' o cualesquiera variantes multibyte o wide char (o TCHAR) cubrirían eso? (También dudo que esto sea una preocupación clave dada la naturaleza de la pregunta –
@dirkgently: en ese caso, ¿el segundo parámetro de 'main()' no es de tipo 'char **'? Eso no puede ser compatible con los estándares –