std::istream
tiene el prototipo istream& read (char* s, streamsize n)
la real número de bytes de lectura debe ser obtenido llamando istream::gcount()
, también la validez de la istream
puede ser conocido a partir ios::good
.Comprender el diseño de std :: :: istream leer
Estaba discutiendo la implementación de otra clase de flujo que estaba tratando de escribir con un colega mío, donde estaba diciendo que podría seguir este diseño; pero dijo que en lugar de hacer que el usuario llame a gcount cada vez, uno podría tener un prototipo de lectura como este istream& read (char* s, streamsize n, size_t &bytes_read)
para que termine en una sola llamada y el primero sea más torpe. No pude defender la elección de diseño de std
. ¿Cuál es la verdadera razón detrás de istream::read
?
¿Quisces decir 'size_t & bytes_written'? Y, probablemente debería ser 'streamsize & bytes_written' (o quizás' chars_read'). –
@James: ¡Sí, gracias! Los bytes y los caracteres son sinónimos aquí, ya que 'sizeof' es el mismo :) – legends2k