Teclado matriz 4X3

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
2
10+6=26
26*10+3=263
Al recibir la # tomamos el valor y volvemos a reiniciar la variable entera.