elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre do while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre do while  (Leído 3,605 veces)
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Duda sobre do while
« Respuesta #10 en: 9 Junio 2015, 04:04 am »

Muchísimas gracias, teníais razón, había que limpiar el bufe. Le he puesto
Código:
fflush(stdin)
antes de los
Código:
printf
y va perfecto.
fflush(stdin) no se recomienda, las razones de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Tu problema se genera porque "%c" no descarta el espacio blanco antes de consumir los caracteres validos para la conversión indicada. Por ejemplo si al pedir el tipo de conversión introduces:
Código:
E{ENTER}
La primera llamada a scanf consume el carácter 'E', el carácter '\n' generado al presionar {ENTER} se queda en el bufer de la entrada estándar y es consumido por la segunda llamada a scanf.

Para evitarlo basta con utilizar " %c" en las dos llamadas a scanf.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines