Tengo un código C++ que tiene muchas funciones que reciben ostream como argumento. Quería probar esas funciones unitarias, para eso tengo que verificar los datos del objeto ostream después de la ejecución de la función. Puedo redirigir el flujo de salida a un archivo, pero quería verificar si puedo crear un buffer temporal y redirigir el flujo de salida al buffer y leer desde ese buffer.cómo redirigir el objeto ostream a un búfer temporal?
6
A
Respuesta
15
Se puede utilizar como un std::stringstream
en la memoria std::ostream
:
#include <iosfwd>
#include <sstream>
#include <cassert>
void my_func(std::ostream& out) {
out << "test";
}
int main() {
std::ostringstream buf;
my_func(buf);
assert(buf.str() == "test");
}
Cuestiones relacionadas
- 1. Copy Constructor Necesario con el objeto temporal
- 2. tomar la dirección de un objeto temporal
- 3. confusión objeto temporal
- 4. objeto temporal en rango para
- 5. ¿Cómo puedo crear un 'ostream' desde un socket?
- 6. ¿Cómo sobrecargar correctamente el operador << para un ostream?
- 7. búfer Deshabilitar a un redirigir la salida estándar de tubo (API Win32, C++)
- 8. Cómo redirigir a un ancla en JSF?
- 9. Cómo redirigir java.util.logging a un archivo?
- 10. Cómo heredar de std :: ostream?
- 11. por qué no podemos crear nuestro propio objeto ostream
- 12. ¿Cuáles son las diferencias entre un objeto de búfer de trama y un objeto de búfer de píxel en OpenGL?
- 13. R: Invertir los datos en un objeto de serie temporal
- 14. redirección temporal a la página de mantenimiento
- 15. impedir el paso por ref del objeto temporal
- 16. objeto temporal y vinculante para referencia constante
- 17. Objeto de búfer y objeto de búfer de imagen en OpenCL
- 18. C# - Impresión temporal desde el (los) objeto (s)
- 19. Cómo animo a emacs a seguir el búfer de compilación
- 20. No permitir tomar puntero/referencia a const a un objeto temporal en C++ (sin C++ 0X)
- 21. ¿Cuándo obtiene un objeto un ID de objeto que no es temporal?
- 22. Advertencia de "objeto temporal": ¿soy yo o el compilador?
- 23. Usando el búfer de protocolo como objeto de datos general?
- 24. pitón búfer de tipo fichero objeto
- 25. operator << overloading ostream
- 26. Implementando un no-op std :: ostream
- 27. Solución temporal a StackOverflowException
- 28. Cómo renderizar/dibujar objeto de búfer en framebuffer sin glDrawPixels
- 29. ¿Cómo toma Stroustrup una referencia no constante a un temporal?
- 30. ¿Cómo creo mi propio ostream/streambuf?
Y si desea volver a utilizar 'buf' después de un lavado, puede restablecerla con' buf.str (""); buf.clear() ' –