Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: m0rf en 7 Febrero 2012, 17:10 pm



Título: [C] Convertir caracter a decimal
Publicado por: m0rf en 7 Febrero 2012, 17:10 pm
Bueno pues les explico.

Tengo este codigo:

Código
  1. #include<stdio.h>
  2.  
  3. main()
  4.  
  5. {
  6.  
  7. FILE *archiu;
  8. char caracter;
  9.  
  10. int count=0;
  11. char nomarch [80];
  12.  
  13.  
  14. scanf("%s",nomarch );
  15.  
  16. archiu = fopen (nomarch,"r");
  17.  
  18. while (feof(archiu)==0&&count<3)  
  19. {
  20.  
  21.      caracter = fgetc (archiu);
  22.      printf("%c  %ld  %ld\n",caracter,caracter,count)
  23.      count++;
  24. }      
  25.  
  26. }
  27.  

El problema es que me da de resultado:
-1  byte 1
-2  byte 2
77  byte 3

11111111
11111110-
01001101-77
--------------------------------------------------------------------------------
Escribiendo el post he encontrado el fallo.

Bueno nada lo posteo por si a alguien le sirve.

El fallo es que el char solo reconoce de 0 a 127. Para que funcione se le tiene que declarar con unsigned para que llegue a 255.




Título: Re: [C] Convertir caracter a decimal
Publicado por: naderST en 7 Febrero 2012, 17:25 pm
Puedes usar atol()

Código
  1. decimal = atol(&caracter);
  2.  


Título: Re: [C] Convertir caracter a decimal
Publicado por: m0rf en 7 Febrero 2012, 18:03 pm
Puedes usar atol()

Código
  1. decimal = atol(&caracter);
  2.  
Gracias por el dato.