Estoy escribiendo una pequeña aplicación de C++ para ajustar la función de entrenamiento de OpenCV Haar (es decir, cvCreateTreeCascadeClassifier). La función arroja una carga completa de salida a la consola y deseo analizar esta salida para que pueda poblar varias variables en mi código.¿Cómo redirigir la salida de impresión de vuelta al código?
La función que deseo utilizar no es parte de la biblioteca de openCV real; en su lugar, tiene que construirse con mi código como parte del proyecto. Toda la salida de la función es a través de printf.
Pregunta: ¿Es posible interceptar las instrucciones printf antes de que terminen en la consola? He logrado redirigirlos usando freopen, pero parece un poco torpe ya que necesito analizar el archivo y luego eliminarlo cuando la llamada a la función finaliza. Además, es probable que la función se ejecute durante varias horas (¡y posiblemente incluso semanas!) Por lo que el tamaño del archivo podría ser un problema si también se adjunta constantemente.
Requisitos: Necesito que esta aplicación sea C++ y que se ejecute tanto en Windows como en Linux (pero no tiene problemas con las declaraciones de compilación condicionales si es necesario). También me gustaría poder seguir viendo mis mensajes de cout y cerr en la consola (solo que no en printf).
¡Mi Google ha eliminado mi voluntad de vivir! ¿Alguien puede ayudarme con una solución a través de ejemplos de código o punteros a lugares donde debería buscar una respuesta?
Gracias
Excelente, esto es justo lo que necesitaba. Había leído mucho sobre todas estas funciones, etc. pero la mayoría de los ejemplos se presentaron de una manera demasiado complicada que los hizo un poco difíciles de entender. Tu ejemplo fue perfecto, breve y también el punto. ¡Gracias! – john