Comment plus ton regirige les plus de sortie (stdout) vers autre chose que l'ecran ? ... un fichier par exemple.
Comment plus ton regirige les plus de sortie (stdout) vers autre chose que l'ecran ? ... un fichier par exemple.
Pour le faire directement dans le code C, tu peux regarder du cote des fonction dup2. De memoire la question avait deja ete evoquer et resolue sur ce forum.
Sinon tu peux aussi tout simplement adapte l'appel du programme pour rediriger le flux de sortie standard vers un fichier, si ton progamme s'appelle prog.exe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part prog.exe > out.txt
sous linux, il y a les appels systemes dup() et dup2()
sous windows: j'avais vu un algo dans "C/C++ la bible du programmeur" mais je ne l'ai plus en tete, desolé![]()
Ou sinon tu peux utiliser d'autre FILE *. Par exemple si c'est pour du debug que tu veux mettre soit en stdout soit dans un fichier, tu peux faire ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (nom_fichier!=NULL) {/* fichier debug */ output=fopen(nom_fichier,"w"); /* TODO : error */ }else{ output=stdout; } /* ... */ fprintf(output,"Debug :...
La fonction freopen peut convenir non ?
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FILE* freopen(char* fichier, char* mode, FILE* flux) ;
Nas'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char NomFicher[]="fichier.txt" ; freopen(NomFichier, "w" , stdout); /* nom du fichier, mode de lecture, sortie standard */
Oki merci !!
Je pense que je vais réussir a me debrouiller avec ca.
Partager