01/02/2015, 15:40
|
Usuario no validado | | Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años Puntos: 5 | |
Respuesta: Problemas con varios operadores lógicos (&&,||) dentro de IF Cita:
Iniciado por vangodp Prueba eso:
Código C:
Ver original//Entrada de datos printf("Ingrese tipo de veh%cculo (Cami%cn = C/Autom%cvil = A): ", 161, 162, 162, 162); scanf("%c%*c", &lcTipoVehiculo ); //para leer un char %c. printf("Hora de alta congesti%cn (S/N): ", 162, 162); scanf("%c%*c", &lcHoraAlta ); printf("N%cmero de pasajeros: ", 163); scanf("%d%*c", &liNumeroPasajeros ); //para leer un int %d
El %*c ignora la tecla enter, esta es la causante de problemas traz leer muchos caracteres intercalados con enters de por medio.
Si vas a leer una letra recuerde que pulsas enter para decir que ya has introducido el char, o sea que tienes 2 chars por el precio de 1. O bien necesitas limpiar el buffer antes y/o después de cada scanf, o bien ignoras esos enters con algunos trucos como puede ser el especificador de entrada %*c que al contrario de %c que le el numero, %*c lo ignora. ;)
Debes leer sobre el buffer de entrada, y tambien el de salida, pero ahora mismo el de entrada te esta trolleando. XD GRACIAS HERMANO. ME HA FUNCIONADO A LA PERFECCIÓN!.
Es extraño que en la documentación de C no mencionen este truco, en ninguna otra parte en internet he leído este truco.
Puedo preguntarte cómo sabías este truco ó dónde lo encontraste?. |