Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2012, 18:26
RincondelosEnigmas
 
Fecha de Ingreso: marzo-2012
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Duda con scanf(...); gets(...); y fgets(...);

Cita:
Iniciado por sam90 Ver Mensaje
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.