Redirection de la sortie vers un fichier [Résolu]

patchouramria 17 Messages postés mardi 30 septembre 2014Date d'inscription 21 janvier 2015 Dernière intervention - 1 nov. 2014 à 22:01 - Dernière réponse :  patchouramria
- 30 janv. 2015 à 16:53
Salut mes amis,
j'aimerai envoyer les resultats de mon programme lors de l'execution(le resultat affichée sur le console) vers une fichier texte, je fait une recherche mais je ne trouve rien concernant le langage C.
merci de m'aider :)
Afficher la suite 

4 réponses

Répondre au sujet
cptpingu 3784 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 18 avril 2018 Dernière intervention - 2 nov. 2014 à 17:24
0
Utile
Bonjour.

Si tu es en ligne de commande, tu lances ton exécutable et tu ajoutes un "> fichier".
Exemple:

Windows:

programme.exe > monfichier.txt


Linux:

./programme > monfichier.txt


Si tu veux le faire en C, tu peux t'en sortir à coup de "dup()" et "dup2()", mais c'est bien trop compliqué pour ton niveau actuel.
Le mieux est d'utiliser des fichiers directement (via fopen) au lieu d'écrire sur la sortie standard.

__________________________________________________________________________________________________

Améliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Commenter la réponse de cptpingu
patchouramria 17 Messages postés mardi 30 septembre 2014Date d'inscription 21 janvier 2015 Dernière intervention - 21 janv. 2015 à 18:16
0
Utile
merci beaucoup :)
Commenter la réponse de patchouramria
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 28 janv. 2015 à 15:48
0
Utile
Salut,

Sinon en C et sans passer par "dup" tu peux également utiliser la fonction "freopen"

#include <stdio.h>
#include <stdlib.h>

void print_str(const char* str) {
  printf("%s", str);
}

void myexit(void) {
  fclose(stdout);
}

int main(int argc, char** argv) {
  FILE *out = freopen("./out.txt", "w", stdout);
  if (!out) { 
    perror("freopen"); 
    exit (EXIT_FAILURE); 
  } 
  stdout = out;// maintenant stdout ira dans le fichier out.txt
  // pour fermer proprement le fichier.
  atexit(myexit);

  // affichage en direct
  printf("Test 1\n");
  // en passant par une fonction
  print_str("Test 2\n");

  return EXIT_SUCCESS;
}

Commenter la réponse de Twinuts
patchouramria - 30 janv. 2015 à 16:53
0
Utile
merci beaucoup :)
Commenter la réponse de patchouramria

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.