Cita:
Iniciado por sam90 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.
Gracias por la explicacion, ahora me quedo mas claro.
Aun asi encontre este uso del scanf - > scanf("%[^\n]"); y lo encontre de mejor uso...
Saludos.