Capturar un Caracter en una variable tipo Int

Iniciado por SDCC, 3 Marzo 2018, 05:50 AM

0 Miembros y 1 Visitante están viendo este tema.

SDCC

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.


#include <stdio.h>

int main(){
int c;

while((c=getchar()!=EOF)
putchar(c);

}


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:


#include <stdio.h>

int main(){
int c;

printf("Ingresa un caracter\n");
c=getchar();
printf("%d\n",&c);
putchar(c);
}


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.


engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SDCC

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