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 

Votre réponse

4 réponses

cptpingu 3827 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 6 octobre 2018 Dernière intervention - 2 nov. 2014 à 17:24
0
Merci
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
Merci
merci beaucoup :)
Commenter la réponse de patchouramria
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - 28 janv. 2015 à 15:48
0
Merci
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
Merci
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.