Flux stdout retourné en fin de programme [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 4 avril 2012
Statut
Membre
Dernière intervention
9 février 2013
-
Messages postés
22
Date d'inscription
mercredi 4 avril 2012
Statut
Membre
Dernière intervention
9 février 2013
-
Bonjour à tous,

J'ai un problème, dans un programme C++ compilé en mode console sans options particulières j'utilise des printf() pour écrire dans le flux stdout.
Jusque là tout vas bien.

Mais lorsque je lance ce programme et que j'essaye de lire son flux stdout avec un autre programme (créé en AutoIt), tout le flux est donné à la fermeture du programme (y compris dans la console).

Donc, savez-vous d'où peut venir ce problème ?

Merci d'avance à vous.

2 réponses

Messages postés
3840
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
19 février 2021
119
Bonjour.

Si tu es en C++, je te conseil vivement d'utiliser les std::ostream plutôt que les vieux printfs...

Pour ton problème, ça peut être un souci de flush. En effet, lorsque l'on écrit sur la console, ce n'est pas écris directement, mais par paquet. Tu peux forcer un flush avec la fonction fflush (Mais c'est assez étrange vu qu'un "\n" est censé provoquer un flush).
Sinon, si tu utilises std::cout, un simple std::endl saute une ligne et flush automatiquement le flux.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
22
Date d'inscription
mercredi 4 avril 2012
Statut
Membre
Dernière intervention
9 février 2013

Oui, merci ça fonctionne parfaitement