J'écris une petite application C++ pour envelopper la fonction d'entraînement d'haven opencv (à savoir cvCreateTreeCascadeClassifier). La fonction jette toute une charge de sortie sur la console et je souhaite analyser cette sortie pour pouvoir remplir différentes variables dans mon code.Comment rediriger la sortie printf en code?
La fonction que je souhaite utiliser ne fait pas partie de la bibliothèque openCV actuelle; il doit plutôt être construit avec mon code dans le cadre du projet. Toute la sortie de la fonction est via printf. Question: Est-il possible d'intercepter les instructions printf avant qu'elles ne finissent sur la console? J'ai réussi à les rediriger en utilisant freopen mais cela semble un peu maladroit car j'ai alors besoin d'analyser le fichier puis de le supprimer quand l'appel de fonction est terminé. En outre, la fonction est susceptible d'être en cours d'exécution pendant plusieurs heures (et peut-être même des semaines!), De sorte que la taille du fichier peut être un problème si elle est constamment en cours d'ajout. Exigences: J'ai besoin de cette application pour être C++ et pour fonctionner sur Windows et Linux (mais ne pas avoir de problème avec les instructions de compilation conditionnelles si nécessaire). J'aimerais aussi pouvoir voir mes messages cout et cerr sur la console (mais pas le printf).
Mon googling a enlevé ma volonté de vivre! Quelqu'un peut-il aider avec une solution via un exemple de code ou des pointeurs vers des endroits que je devrais chercher une réponse?
Merci
Excellent - c'est exactement ce dont j'avais besoin. J'avais beaucoup lu sur toutes ces fonctions, mais la plupart des exemples étaient présentés de manière trop compliquée, ce qui les rendait un peu difficiles à comprendre. Votre exemple était parfait, court et aussi le point.Merci! – john