Lo que pides es un asunto que creo que está bastante trillado en este foro. Te doy una pista, a ver si eres capaz de arreglarlo tú solo:
Primero iniciamos la variable entera:
int entero = 0;
Para ir acumulando dígitos recibidos al mismo int, primero desplazamos a la izquierda (es decir, multiplicamos por 10) y luego sumamos el dígito recibido:
entero *=10;
entero += caracter - '0'; // restamos el código ascii de 0 para obtener el valor neto del dígito, no su código ascii
Es decir, si por ejemplo pulsamos 263#:
010+2=2
210+6=26
26*10+3=263
Al recibir la # tomamos el valor y volvemos a reiniciar la variable entera.