La función buscar no funciona porque en ningún momento das opción a buscar algo, sólo pinta lo que hay en el fichero.
Que no salga correctamente se debe a opcion == '4'
'4' no es el número 4, es un caracter que representa al número cuatro, si conviertes directamente un char a int, lo que obtienes es su número de bits, no su valor numérico.
'4' es 52, 'a' es 97
http://2.bp.blogspot.com/-V_W7Joe_vo...igo+ASCII+.gif