Tema: El buffer
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/09/2010, 19:54
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: El buffer

Me dicuenta que no sabes mucho sobre este tema del buffer.... Porque la palabra adecuada no sera "liberar el buffer" porque no es una obligacion.

Por ahi a liberar el buffer te refieres a vaciarlo pero eso se aplica mas a la hora de imprimir en pantalla que de leer del teclado.

Te comendo un poco, cuando presionas las teclas del teclado, estas se van acumulando en un buffer (un array en la memoria). Al aplicar las opciones getc, gets, scanf, fread aplicado a la entrada standar. Lo que se hace es leer de ese buffer y quitarlo para no leerlo nuevamente. Lo interesante de esta opcion seria no leer de mas, asi no se pierden datos en el camino. Por ejemplo si estamos leyendo un entero con scanf y ingresamos "124123 hola david" lo interesante seria "consumir" 124123 y no el hola david.
Por eso si usas el gets para leer una linea es tu problema como lees toda la informacion, no es recomendable si queres leer muchos datos preformateados.

Por otro lado tenes el buffer de salida, que es aquel que se va llenando hasta que en un momento el sistema operativo decide volcarlo en la pantalla. Esto lo hace para ganar velocidad supongo. Pero se le da la opcion al usuario de volvar al buffer cuando desea.
Lo ideal seria vaciarlo o liberarlo antes de alguna instruccion que pueda probocar algun error. Ya que si se llega a producir un error y este no se vacio jamas sera mostrado en pantalla.