C/Visual C - ayuda con codigo

 
Vista:

ayuda con codigo

Publicado por quikiss (6 intervenciones) el 16/11/2006 08:26:46
Hola a todos he hecho un menu de cadenas, funciona perfectamente con el scanf pero cuando pongo el gets se salta la instruccion. ¿COmo puedo solucionarlo?

printf("\nElige una opcion del menu:");
printf("\n\t1.Mayusculas\n\t2.Minusculas\n\t3.Concatenar\n\t4.Calcular longitud\n\t5.Palindromo\n\t6.Salir\n");
scanf("%d",&menu);
switch (menu)
{
case 1:

printf("dame una palabra y te la paso a MAYUSCULAS:");
BIEN - scanf("\n%c",&cadena);
MAL -gets(cadena);
longitud=strlen(cadena);
printf("la cadena en Mayusculas es:\t");
for(i=0;i<longitud;i++)
printf("%c",toupper(cadena[i]));
break;
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

RE:ayuda con codigo

Publicado por Tom (619 intervenciones) el 16/11/2006 11:24:33
Cuando seleccionas la opción del menú, escribes, por ejemplo "2\n" (o sea, pulsas return).
Cuando haces scanf, te olvidas del \n, así que gets() lo lee y retorna.
Tú mismo lo has visto, si vuelves a usar scanf funciona.
Prueba con scanf("%d\n" &menu)
o haz un gets() inmediatamente después del scanf(), o haz algo como esto:

while(cadena[0] == 0) gets(cadena);
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