EVA.P2

libreria <streambuf>
Clase tampón Base para los flujos
  • streambuf
  • filebufstringbuf

Esta plantilla está diseñada como base de clase virtual para todos tampón corriente clases que manejan caracteres estrechos (de tipo Char ). Se trata de una instancia de

basic_streambuf con los siguientes parámetros de plantilla:
parámetro de plantilla
definición
comentarios
tabla
Char
Alias ​​como miembro char_type
rasgos
char_traits <char>
Alias ​​como miembro traits_type

Un búfer de la secuencia es un objeto encargado de realizar las operaciones de lectura y escritura de la corriente de objeto que se asocia con: los delegados de transmisión en todas las operaciones a su asociado búfer de la secuencia objeto, que es un intermediario entre la corriente y su entrada controlada y salida secuencias . Todos los arroyos objetos, no importa si tamponado o sin búfer, tienen un asociado búfer de la secuencia : Algunos tampón corriente tipos pueden entonces ajustarse para cualquiera que use un intermedio tampón . o no de amortiguamiento Stream objetos mantener internamente, al menos:



  • La lugar objeto, que se utiliza para las operaciones de configuración regional dependiente.
  • Un conjunto de indicadores internos para mantener un buffer de entrada: eback, GPTR, egptr.
  • Un conjunto de indicadores internos para mantener un búfer de salida: pbase, PPTR, epptr.

Internamente, el streambufclase es una clase base elaborada diseñado para proporcionar una interfaz pública uniforme para todas las clases derivadas: Estas funciones públicas llaman a los miembros protegidos virtuales que derivan clases pueden anular para implementar un comportamiento específico. Estas funciones virtuales anulados tienen acceso a la parte interna de lastreambuf clase por medio de un conjunto de funciones protegidas (véase más adelante).
Programacion en c ++:
Escribiendo directamente de un streambuf a un enchufe:
impulsar :: asio :: streambuf  b ; 
std :: ostream  os (y b ); 
os  <<  "Hola, mundo! \ n" ;

// Intente enviar algunos datos de la secuencia de entrada 
size_t  n  =  calcetín . enviar ( b . de datos ());

b . consume ( n );  // datos enviados se elimina de secuencia de entrada
La lectura de un enchufe directamente en una streambuf:
impulsar :: asio :: streambuf  b ;

// Reserva 512 bytes en la secuencia de salida de 
impulso :: asio :: streambuf :: mutable_buffers_type  bufs  =  b . preparar ( 512 );

size_t  n  =  calcetín . recibirá ( bufs );

// De datos recibido es "comprometida" de secuencia de salida de secuencia de entrada 
b . cometer ( n );

std :: istream  es (y b ); 
std :: string  s ; 
se  >>  s ;
https://drive.google.com/file/d/0B7vmWFRW6C_Ca1RFWmRjZ184Yms/view?usp=sharing

No hay comentarios.:

Publicar un comentario