28/04/2012, 09:08
|
| | Fecha de Ingreso: abril-2010 Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses 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. |