Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SDCC en 3 Marzo 2018, 05:50 am



Título: Capturar un Caracter en una variable tipo Int
Publicado por: SDCC en 3 Marzo 2018, 05:50 am
Muy buenos dias, el proposito de este tema es sobre un duda que me surge al ver un fragmento de un programa que se encarga de imprimir caracter por caracter hasta que se llegue al final de un archivo.Este fragmento de programa lo he sacado del libro "El lenguaje de programación C".Libro de Brian Kernighan y Dennis Ritchie.

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4. int c;
  5.  
  6. while((c=getchar()!=EOF)
  7.  
  8. }
  9.  

En este programa entiendo cuales son las razones de que el caracter tenga que guardarse en una variable de tipo enteros por razones de que el valor EOF determina que el archivo ha terminado y tiene un valor que no puede ser almacenado por una variable de tipo char, mi duda surge a la hora de entender que es lo que realmente esta guardando la variable c, es decir , tengo un programa como el siguiente:

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4. int c;
  5.  
  6. printf("Ingresa un caracter\n");
  7. c=getchar();
  8. printf("%d\n",&c);
  9. putchar(c);
  10. }
  11.  

En este programa realmente me reafirma que la variable de tipo entero esta almacenando un valor unico para cada caracter , es decir , para el caracter 'a' me arroja que la variable de tipo entero tiene el numero "6487628" y que a la hora de imprimirla como caracter me devuelve el caracter 'a' ,sin embargo no logro entender que relacion tiene esta cifra o este numero con el caracter 'a' , he visto que no se trata del codigo ASCII del caracter . De antemano , gracias.



Título: Re: Capturar un Caracter en una variable tipo Int
Publicado por: engel lex en 3 Marzo 2018, 05:53 am
estás imprimiendo la dirección de memoria ram donde está almacenado el contenido de la variable c, printf no requiere & antes de la variable


Título: Re: Capturar un Caracter en una variable tipo Int
Publicado por: SDCC en 3 Marzo 2018, 05:57 am
Cierto , gracias , me parece que no me di cuenta de mi error a la hora de escribir la funcion de  printf . Gracias, ya pude observar que realmente si retorna el valor de ASCII