créer un flux nul ou un flux fictif [flux] - C++ - Programmation
Marsh Posté le 07-11-2004 à 22:52:57
Voici une adresse à laquelle une réponse a déjà été donnée (en anglais) :
http://coding.derkeiler.com/Archiv [...] /1049.html
Merci à tous ceux qui ont lu mon poste !
Marsh Posté le 07-11-2004 à 19:34:27
Bonsoir à tous et d'avance, désolé pour la longueur de ce post !
J'écris en ce moment une surcouche aux flux standards du C++ pour gérer l'UNICODE et un format personnel ('infotexte'). La classe infotexte peut s'utiliser pour la lecture seule ou pour la lecture et l'écriture.
Voici ma hiérarchie de classes :
(couche système) istream ostream
. .
(ma couche unicode) flux_in flux_out
. .
..............
.
(ma couche infotexte) infotexte
Le problème apparaît avec les constructeurs prévus pour la lecture seule (j'ai donc supprimé les autres constructeurs et beaucoup simplifié le code). Dans ce cas flux_out ne me sert à rien et j'ai donc créé un constructeur-bidon... Mais comment initialiser ostream ?
Quand je crée une instance de classe infotexte pour la lecture seule, le constructeur de flux_in est d'abord appelé et il ouvre correctement le fichier passé en argument. Puis le constructeur-bidon flux_out est appelé et ne fait rien. Mais quand le constructeur infotexte reprend la main, je me rend compte que mon flux d'entrée est fichu (rdstate() me renvoie badbit).
Je crois que c'est le fait d'appeler ostream(0) comme je le fais qui provoque une erreur. Si vous aviez une solution pour diriger ce flux vers un flux nul sans créer d'erreurs, merci beaucoup.
Message édité par suizokukan le 07-11-2004 à 19:38:57