liquilds-tabs >
pour la machine, TOUT est numerote.
Les caracteres ( les lettres, maj/min, chiffres, caracteres speciaux, etc...)
ont chacun un numero propre...
Ce numero est le meme sur TOUTES les machines.
la table qui contient, pour chaque numero, le caractere correspondant, est appelee table ASCII.
dans cette table, il s avere que le code 48 equivaut au caractere ´0´
que 49 equivaut a ´1´
50 a ´2´ etc...
65 equivaut a ´a´, 66 a ´b´ etc...
tu peux trouver la table ASCII partout sur le net.
ceci etait necessaie pour repondre a ta question :
--> getchar() te retourne le CODE du caractere que tu as rentre. Si tu entres un 1, getchar te renvoie donc un 49...
donc en faisant 49-48, tu tombes sur 1 ! pile ce que tu veux...
50-48 te donne 2, etc !
donc pour finir de repondre, ce -48 te convertit le code de ton nombre em nombre lui meme...
cependant, je trouve ca maladroit, car tu n es pas cense connaitre la table ASCII par coeur.
Ils auraient mieux fait de faire :
getchar()-´0´; au lieu de getchar()-48;
( veut dire getchar() moins code de 0 ( quand tu mets les ´´ ( donc ici 48)) ca se comprend nettement mieux pour toi, te pour la machine, c est pareil...)
en esperant avoir pu t eclairer !