Я пишу небольшое приложение на c ++, чтобы обернуть вокруг обучающую функцию opencv haar (а именно cvCreateTreeCascadeClassifier).Функция генерирует всю нагрузку вывода на консоль, и я хочу проанализировать этот вывод, чтобы я мог заполнить различные переменные в моем коде.
Функция, которую я хочу использовать, не является частью реальной библиотеки openCV;вместо этого он должен быть построен с моим кодом как часть проекта.Все выходные данные функции выполняются через printf.
Вопрос. Можно ли перехватить операторы printf до того, как они попадут на консоль?Мне удалось перенаправить их с помощью freopen, но это кажется немного неуклюжим, поскольку мне нужно проанализировать файл и затем удалить его, когда вызов функции завершен.Кроме того, функция, вероятно, будет работать в течение нескольких часов (и, возможно, даже недель!), Поэтому размер файла может быть проблемой, если он постоянно добавляется.
Требования: мне нужно, чтобы это приложение былоc ++ и для запуска как в Windows, так и в Linux (но не возникает проблем с условными инструкциями компиляции, если это необходимо).Я также хотел бы иметь возможность видеть мои сообщения cout и cerr на консоли (только не printf).
Мой поиск в Google снял мое желание жить!Может ли кто-нибудь помочь с решением с помощью примера кода или указателей на места, где я должен искать ответ?
Спасибо