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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  bucle, se come el primer scanf
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: bucle, se come el primer scanf  (Leído 3,209 veces)
Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
bucle, se come el primer scanf
« en: 13 Junio 2012, 17:31 pm »

Código
  1. char coordenada1; int coordenada2;
  2. //preguntamos coordenadas
  3. printf("Introduce coordenada 1 (A-J) : ");
  4. scanf("%c", &coordenada1);
  5.  
  6. printf("Introduce coordenada 2 (0-9) : ");
  7. scanf("%d", &coordenada2);

Tengo esto en un bucle while, y la primera vez lo realiza bien, pero la segunda vez que lo introduzco,
el primer scanf, se lo come y me salta al segundo... Alguna idea?


En línea

maxim_o

Desconectado Desconectado

Mensajes: 186


Ver Perfil
Re: bucle, se come el primer scanf
« Respuesta #1 en: 13 Junio 2012, 17:46 pm »

Mirate esto: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

EL apartado de fflush(stdin);


En línea

Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: bucle, se come el primer scanf
« Respuesta #2 en: 13 Junio 2012, 18:06 pm »


ok me lo reviso!

igualmente vi que cmbiando el...

Código
  1. scanf("%c", &coordenada1);

por

Código
  1. scanf("%s", &coordenada1);

ya funciona :)
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: bucle, se come el primer scanf
« Respuesta #3 en: 13 Junio 2012, 18:38 pm »

Asi puede que funcione pero no creo que sepas porque funciona; no es la forma correcta, el %s es para ingreso de cadenas.. Despues de cada scanf deberias agregar este bucle:
Código
  1. while(getchar()!='\n');
Lo que hace es limpiarte el bufer del teclado, esto evita los saltos que mencionas

Saludos
En línea

Ahorrate una pregunta, lee el man
Neibar

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: bucle, se come el primer scanf
« Respuesta #4 en: 14 Junio 2012, 23:32 pm »

Asi puede que funcione pero no creo que sepas porque funciona; no es la forma correcta, el %s es para ingreso de cadenas.. Despues de cada scanf deberias agregar este bucle:
Código
  1. while(getchar()!='\n');
Lo que hace es limpiarte el bufer del teclado, esto evita los saltos que mencionas

Saludos

toda la razón, ;) añadido queda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Parametros de api printf y scanf
Programación Visual Basic
krackwar 2 6,906 Último mensaje 21 Julio 2008, 18:00 pm
por krackwar
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,583 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
el porque del scanf no es recomendable
Programación C/C++
nicolasblues86 5 4,300 Último mensaje 16 Mayo 2010, 22:07 pm
por -Ramc-
funcion scanf ayuda!
Programación C/C++
Fer995 6 6,040 Último mensaje 30 Octubre 2010, 02:31 am
por Fer995
leer frase con scanf « 1 2 »
Programación C/C++
Fer995 16 15,771 Último mensaje 14 Noviembre 2010, 16:02 pm
por Qorin
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines