[C con Clase] Lo + básico

vicente lozano vicentelozano en gmail.com
Mie Abr 1 09:55:40 CEST 2009


Vale, muchas gracias a ambos.

2009/3/31 Steven Davidson <srd4121 en njit.edu>

> Hola Vicente,
>
> vicente lozano wrote:
>
>> No sabia que fflush para in no era standard, hay alguna funcion que
>> haga eso en el standard?
>>
>>
> Como ha mencionado José Álvaro, tienes que extraer los caracteres restantes
> del canal de entrada. Puedes usar 'fgets()' o puedes ir carácter por
> carácter con 'getchar()' hasta leer EOF. Por ejemplo,
>
> while( getchar() != EOF );
>
> Otra solución es establecer tu propio búfer y modo de almacenamiento a
> través de 'setvbuf()' para cualesquier canales de entrada, salida, o ambos.
>
> En C++, podemos manipular el búfer del canal de entrada de la clase
> 'istream' de tal manera que podemos ignorar una cantidad de caracteres
> invocando 'ignore()'. Por ejemplo,
>
> cin.ignore( 1024 );
>
> Para que esto funcione, necesitas desasociar las bibliotecas de ANSI C de
> "stdio" con las de ANSI C++. Esto lo hacemos a través de la función
> 'sync_with_stdio()'. Esto es,
>
> ios::sync_with_stdio( false );
>
> cin.ignore( 1024 );
>
> También puedes averiguar la cantidad de caracteres disponibles en el búfer
> de entrada para usar la cantidad exacta de caracteres en tal canal de
> entrada. Por ejemplo,
>
> cin.ignore( cin.rdbuf()->in_avail(), '\n' );
>
>
> Espero haber aclarado el tema.
>
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090401/eb7dded3/attachment.html>


Más información sobre la lista de distribución Cconclase