Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1914 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  flux vers fichier ET vers console en même temps

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

flux vers fichier ET vers console en même temps

n°854141
suizokukan
Posté le 20-09-2004 à 15:13:22  profilanswer
 

 Bonjour,
 
  j'aimerais créer un flux 'sortie' pour pouvoir écrire :
                   
       sortie << "machin";
 
  de manière à ce que "machin" sorte vers l'écran et vers un fichier dont j'aurais fourni le nom en initialisant mon flux. J'ai pensé définir une instance d' ofstream en surchargeant << pour diriger en plus les données vers la console... J'aimerais avoir votre avis avant de me lancer là-dedans. Merci d'avance.

mood
Publicité
Posté le 20-09-2004 à 15:13:22  profilanswer
 

n°854148
Taz
bisounours-codeur
Posté le 20-09-2004 à 15:17:53  profilanswer
 

tu t'ennuies pour rien
 
./a.out | tee fichier

n°854169
suizokukan
Posté le 20-09-2004 à 15:43:43  profilanswer
 

  Merci pour le tuyeau : c'est vrai que les possibilités des systèmes Unix laissent rêveur...  
 
   Mais  
   (1) je travaille sur Linux ET sur XP,
   (2) en ce moment je réécris du code C en C++; comme je trouve que les flux sont très puissants, j'aimerais les utiliser le plus possible et résoudre mon problème en le codant en C++,
   (3) si la sortie vers la console serait constante, la sortie vers le fichier, elle, serait conditionnée par l'utilisateur du programme APRES le lancement,
   (4) je trouve que c'est un super exercice de programmation !

n°854314
Shooter
Cherche niche fiscale
Posté le 20-09-2004 à 18:12:52  profilanswer
 

La surcharge me semble une bonne piste, le ++ est fait pour.

n°854456
suizokukan
Posté le 20-09-2004 à 22:53:50  profilanswer
 

 J'ai posé le même topic sur le forum de Développez.com et on m'a orienté vers la FAQ de fr.comp.lang c++ paragraphe 27.3 qui explique comment écrire ses propres flux. D'après la discussion à laquelle j'ai assistée, créer une simple classe Flux en surchargeant l'opérateur << ne suffit pas. Je vous tiens au courant si j'ai du nouveau.

n°854467
bjone
Insert booze to continue
Posté le 20-09-2004 à 23:28:46  profilanswer
 

jouer avec le rdbuf() ?
 
ofstream *LogFile=new ofstream("yop.log" );
 
 if( LogFile && *LogFile )
 {
  cout.rdbuf( LogFile->rdbuf() );
  clog.rdbuf( LogFile->rdbuf() );
  cerr.rdbuf( LogFile->rdbuf() );
 }
 
par exemple. (passer par un pointeur doit pas être nécessaire, donc pas taper je suis à 3 m d'un piscine :D)

n°854468
bjone
Insert booze to continue
Posté le 20-09-2004 à 23:29:29  profilanswer
 

a non pardon :D
 
là ça redirige tout vers un fichier :D

n°854515
Taz
bisounours-codeur
Posté le 21-09-2004 à 01:48:54  profilanswer
 

euh ça me parait un peu compliqué tout ça
 
pourquoi ne pas bricoler un peu pour aboutir à quelque chose comme
 
std::cout << LOGIT << "Je m'affiche et je suis écrit dans le fichier\n";
std::cout << "Je ne fais que m'afficher\n";
 
ou plus généralement utiliser une API pour faire du logging de messages ?

n°854536
suizokukan
Posté le 21-09-2004 à 08:15:31  profilanswer
 

 Oui Taz, j'ai eu moi aussi la tentation de créer un manipulateur pour résoudre mon problème; mais quitte à faire mon kéké, je persiste à essayer de m'en passer :  après tout, ça permet de réutiliser de l'ancien code C++ sans avoir à ajouter quoi que ce soit aux arguments du flux. C'est l'aspect 'système D' du manipulateur qui me gêne.
 
  Quant à créer une API pour logger mes messages, l'idée me tente mais ce serait la première fois pour moi... Merci pour toutes ces infos.

n°854606
Taz
bisounours-codeur
Posté le 21-09-2004 à 10:08:27  profilanswer
 

j'ai pas dit créer ... et je vois pas l'aspect système D des manipulateurs

mood
Publicité
Posté le 21-09-2004 à 10:08:27  profilanswer
 

n°854671
Joel F
Real men use unique_ptr
Posté le 21-09-2004 à 11:19:33  profilanswer
 

Taz a écrit :

et je vois pas l'aspect système D des manipulateurs


 
mais clair ! les manipulator sont là justement pour ça [:le kneu]

n°854722
notalone
je kif le c++
Posté le 21-09-2004 à 12:02:07  profilanswer
 

je l ai deja fai mai pas avec les stream j ai utilisé freopen() sous xp pour trapper stdout


---------------
ici c ma signature j ai pas encore reflechi a ce que je vais mettre

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  flux vers fichier ET vers console en même temps

 

Sujets relatifs
Interface de partage de fichierzone de sélection d'un dossier et non d'un fichier
[PHP] Effacer un fichier ?PB avec delphi 6 : delphi se ferme a l'ouverture d'un fichier
cryptage de fichier avec XOREcriture dans un fichier : erreur de retour à la ligne [résolu]
Récupération du contenu d'un fichier et traitementouverture fichier xlx en ordre alpha en vba
url dans fichier xml découpé en 3 partie, pourquoi ?[shell]boucle for imbriquée pour recopie de fichier
Plus de sujets relatifs à : flux vers fichier ET vers console en même temps


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR