LireChar te renvoie un caractère ascii, un symbole en gros. On un symbole correspond à un nombre (regarde table ascii sur Google), et le symbole '0' correspond je crois à 0x30 soit 42 (sauf erreur hein). Ça signifie que si tu as le caractère '6', concrètement il a la valeur 42+6 donc 48. Il faut donc soustraire à la valeur le nombre 42, indice du zéro.
Pour ça tu peux faire "-42" après l'acquisition, ou comme proposé au dessus "- '0'", c'est équivalent.
Le plus intelligent serait d'utiliser une fonction qui récupère un nombre, genre lireInt(). Déjà parce que tu aurais direct la bonne valeur, et surtout parce qu'en lisant un char tu peux pas additionner des nombres supérieurs à 9 puisqu'ils font plus d'un caractère. Sauf bien sûr en lisant un nombre jusqu'au retour à la ligne et en multipliant chaque partie par le bon multiple de 10 puis en sommant le tout, mais quelque chose me dit que tu as pas le niveau.