Flux stdout retourné en fin de programme

Résolu
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013 - 21 juin 2012 à 11:21
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013 - 21 juin 2012 à 12:30
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
21 juin 2012 à 11:51
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
3
cs_TT22 Messages postés 22 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 9 février 2013
21 juin 2012 à 12:30
Oui, merci ça fonctionne parfaitement
0
Rejoignez-nous