¿ Cómo funciona este código que pasa de char a int ?

Iniciado por snake_linux, 27 Agosto 2015, 01:48 AM

0 Miembros y 2 Visitantes están viendo este tema.

snake_linux

Buenas, tengo el siguiente código, donde necesitaba convertir un char (no un array, solo un caracter) en un int, y en internet encontré el siguiente método:


int ataque;
ataque=fgetc(stdin);
while(fgetc(stdin) != '\n');
ataque=ataque-48;


El caso es que funciona perfectamente, pero no se por que al restarle 48 al char me devuelve ese int, he estado buscando información pero no me ha quedado claro, y aunque funcione, me gustaría saber por que funciona.

Gracias de antemano.

Saludos.

engel lex

simple... que numero en decimal representa al '0' en ascii?



o mejor escribe este código

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(){
  cout << (int) '0' <<endl;
  return 0;
}
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.

snake_linux