<br><br><div><span class="gmail_quote">El día 30/12/07, <b class="gmail_sendername">Apokathastasis</b> <<a href="mailto:apokathastasis@gmail.com">apokathastasis@gmail.com</a>> escribió:<br><br></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
El problema que tienes se debe al manejo que das al buffer de entrada<br>(stdin o standard input). Para entenderlo mejor te lo ilustraré con tu<br>propio ejemplo.<br><br>* Cuando aparece el menu tecleas 2 caracteres 1 e INTRO ('\n') los
<br>cuales quedan en stdin.<br>* Después lees *un* solo caracter, por lo que el INTRO queda en stdin.<br>* Cuando se ejecuta el ciclo por segunda vez llevas acarreando un<br>INTRO por lo que al llegar al scanf es el caracter que lee.
<br>* Cuando se ejecuta el ciclo por tercera vez se detiene porque ya no<br>hay nada en stdin y entonces scanf vuelve a esperar una entrada.<br><br>Para solucionar esto puedes utilizar la función fflush() con stdin<br>como argumento después de scanf.
<br><br></blockquote></div>Muy bien, he puesto fflush(stdin) antes de scanf y va perfecto.<br>OK, resuelto.<br><br>Muchas gracias.<br>