Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/04/2012, 09:08
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 1 mes
Puntos: 228
Respuesta: Duda con scanf(...); gets(...); y fgets(...);

Basicamente lo que te pasa es que no sabes como trabaja el sistema operativo.
Cuando uno preciona enter se envia el caracter '\n' al buffer del teclado.
La funcion gets lee hasta que encuentra ese caracter.

En cambio scanf("%s", opcion); NO... deja el caracter '\n' en el buffer....asi cuando vuelve a relizaqr el ciclo gets se encuentra con ese caracter y te deja el nombre nulo.

Se se soluciona vaciando ese buffer a mano.

while(getchar() != '\n');

Pon ese linea antes de empezar cada ciclo.