Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/05/2012, 06:32
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Función leer un el buffer de entrada hasta encontrar un entero

El scanf consume el buffer si encuentra lo que necesita... por eso primero pido un entero (%d)... Fiajte que el scanf retorna un valor...ademas de asignar...el valor de retorno indica cuantos patrones se encontraron. En este caso se pidio un entero, si se encontro devuelve uno..sino un cero...

Asi que en el if pregunto si i es distinto de uno. Si es distinto de uno, le pido al scanf que me de un caracterer. Un caracter siempre va a ser leido....

Luego repito esta operacion hasta que encuentre el entero.

Ejemplo:
Buffer de entrada: as125

1 - No encuetro un entero, scanf devuelve 0. Consumo caracter 'a'
2 - No encuentro un entero, scanf devuelve 0. Consumo caracter 's'
3 - Scanf encuentra un entero y lo alamcena en num. i = 1. Entonce se termina el Do{}While;

Saludos