such sirve que para namespace libreria funcion descargar cerr biblioteca c++ iostream

sirve - que es cout en c++



¿Qué alternativas serias existen para la biblioteca IOStream?(además de cstdio) (2)

Es posible que le interese la biblioteca de formato rápido . Puede ver la comparación en su sitio web con varias otras bibliotecas también.

Estoy buscando una biblioteca que funcione de manera similar a iostreams, ya que realiza conversiones y permite escribir en memorias intermedias de memoria, archivos y la consola. Sin embargo, me gustaría que algo escriba seguro, como lo es iostream. ¿Hay bibliotecas serias que hacen esto?

Ser capaz de especificar la codificación de salida para las cosas sería un plus.

Tenga en cuenta que no estoy interesado en las bibliotecas que simplemente enfrentan iostreams porque simplemente agregan más complejidad a lo que está haciendo iostreams, por ejemplo, el boost::format .

Respuesta de comentario preventivo: no quiero usar cstdio porque usar ese sistema es imposible que el código tenga una ubicación de salida independiente del agnóstico. Es decir, debe llamar a una función para enviar cosas a los almacenamientos intermedios, y debe llamar a otra función para enviar cosas a los archivos, y otra para la consola, etc.

EDIT2: en respuesta a la ráfaga de comentarios a continuación: estoy harto de iostreams y cstdio. Aquí hay razones más específicas. Traté de mantener mi "despotricar" fuera de esta cuestión, pero la gente sigue preguntándome si me salgo de mi balancín, así que este es mi razonamiento.

cstdio

  • No puede manejar los caracteres Unicode correctamente
  • No se puede escribir en algo así como una cadena sin hacer una gestión manual del buffer
  • A menudo requiere soporte de extensiones no estándar (por ejemplo, vsnprintf ) para que se pueda usar (EDITAR: está bien, la biblioteca estándar de C99 en C ++ 11 agrega la mayoría / todas estas ahora)
  • No se puede cambiar la ubicación de la salida sin cambiar el código original (extensiones no estándar, por ejemplo, en glibc le permiten tratar un puntero de archivo como un búfer, que hace esto ... pero sigue siendo eso, una extensión no estándar)
  • Hace que la seguridad sea "divertida" (hasta el punto en que capítulos enteros están dedicados en documentos de seguridad que explican problemas, por ejemplo, con cadenas de formato de "printf" y similares)
  • No escriba seguro

iostreams

  • Lento
  • Completamente demasiado complicado para un cliente. Si usa solo lo que viene con la biblioteca estándar, es genial, pero intentar extender las cosas es casi imposible. Leí todo el libro "Estándar C ++ IOStreams y Locales", el único libro aparentemente disponible sobre el tema, dos veces , y todavía no sé lo que está pasando.

Me encanta iostreams en concepto, incluso el uso del operator<< que a algunas personas parece no gustarles, pero parece demasiado ingenioso para mí. Alguien no debería tener que pasar innumerables horas leyendo libros para ser un simple cliente de su biblioteca. Claro, si está agregando una nueva fuente de salida o algo así, podría entenderlo, pero ... los clientes deberían estar protegidos de esa complejidad. (¿No es eso para lo que es una biblioteca?)

Esto es casi lo único que es doloroso en C ++ que "simplemente funciona" en otros lenguajes de programación, que no veo ninguna razón para ser complicado.


Boost . Spirit . Qi para entrada, Boost . Spirit . Karma para la salida. Puede leer / escribir en cualquier cosa que pueda representarse como un rango de iterador.