Dev - C++ - Pequeña duda C

   
Vista:

Pequeña duda C

Publicado por Antonele_C (2 intervenciones) el 21/12/2015 16:00:09
Hola buenos días.

Tengo una duda a la hora de trabajar con un programa. Mi idea es imprimir por pantalla el equivalente en ASCII de un string en hexadecimal.

Por ahora estoy trabajando con este código.

1
2
3
4
5
6
7
8
9
10
11
12
13
const char text[] = "325F47", *ptr = text;
                              while ( *ptr )
                                {
                                   unsigned int ch;
                                   int n;
                                   if ( sscanf(ptr, "%2x%n", &ch, &n) != 1 )
                                    {
                                      break;
                                    }
                                   ptr += n;
                               putchar(ch);
                               }
                               putchar('\n');

Lo unico que quiero modificar es la parte de
1
const char text[] = "325F47", *ptr = text;
Donde en lugar de ese string hexadecimal en concreto quiero trabajar con el equivalente en hexadecimal de un entero que tengo generado anteriormente (en mi código se llama cod).

Alguna idea?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Pequeña duda C

Publicado por agustin (305 intervenciones) el 22/12/2015 09:47:29
Pues en vez de usas const usas una variable char [] normal y corriente, luego cuando tengas el número en tu variable te aseguras que el número tenga un número par de caracteres ya que si no no te va a coger el último carácter y si no es par pues haces lo que veas oportuno en tu caso. Si lo que tienes es una variable de tipo int y quieres pasarlo a hexa para usar ese código puedes usar sprintf para convertir el entero a hexa guardando el resultado en un buffer char [] y luego sobre ese buffer aplicas ese código que muestras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar