bucle, se come el primer scanf

Iniciado por Neibar, 13 Junio 2012, 17:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Neibar

char coordenada1; int coordenada2;
//preguntamos coordenadas
printf("Introduce coordenada 1 (A-J) : ");
scanf("%c", &coordenada1);

printf("Introduce coordenada 2 (0-9) : ");
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?


Neibar

Cita de: maxim_o 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);


ok me lo reviso!

igualmente vi que cmbiando el...

scanf("%c", &coordenada1);

por

scanf("%s", &coordenada1);

ya funciona :)

durasno

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:
while(getchar()!='\n');
Lo que hace es limpiarte el bufer del teclado, esto evita los saltos que mencionas

Saludos
Ahorrate una pregunta, lee el man

Neibar

Cita de: durasno 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:
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