C/Visual C - gets o fgets dentro de switch

 
Vista:

gets o fgets dentro de switch

Publicado por yamakasiz (7 intervenciones) el 08/06/2003 21:23:36
Necesito crear un test, donde le meto las preguntas a utilizar depues, como son frases el scanf no me vale. Uso un sitech para elegir si crearlo, modificarlo o rellenarlo.

Si no uso el switch con el gets (pregunta[x]) y el fgets (pregunta[x], sizeof (pregunta[x]), stdin) funciona, pero en cuanto lo meto dentro del switch se salta la primera pregunta.

El contador comienzo en 1, y solo quiero hasta 2 preguntas.

switch (funcion)
{
case 1:
do
{
printf ("Introduce la pregunta:\n");
fgets (pregunta[x], sizeof (pregunta[x]), stdin);
x=x+1
}while (x<3);
f=fopen ("prueba.txt","w");
if (f==NULL)
{
printf ("ERROR");
}
x=1;
do
{
fprintf (f, "%s\n",pregunta[x]);
x=x+1;
}while (x<3);

fclose (f);
break;

Pq dentro del switch no va?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:gets o fgets dentro de switch

Publicado por Javier Albor (59 intervenciones) el 09/06/2003 07:32:24
Hola:
Quizas el problema sea la lectura de la var. funcion, si la ingresaste con scanf() ,probá de poner un fflush( stdin ) despues de ese scanf , antes del switch.
fflush( stdin) vacía el buffer el teclado donde puede haber quedado colgado un ENTER luego de scanf.
Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:gets o fgets dentro de switch

Publicado por yamakasiz (7 intervenciones) el 09/06/2003 17:16:05
Sigue sin funcionar. Se salta la primera pregunta :(

Por favor que alguien me heche un cable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:gets o fgets dentro de switch

Publicado por chuidiang (677 intervenciones) el 09/06/2003 19:00:03
Prueba a inicializar x=1 dentro del case, antes del gets().
Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar