Bien programmer en langage C
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -15%
(Adhérents) LEGO® Icons 10318 Le Concorde
Voir le deal
169.99 €

enregistrement des résultats de l'exécution du programme

2 participants

Aller en bas

enregistrement des résultats de l'exécution du programme Empty enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Mer 4 Mar 2009 - 21:44

Salut,
je voudrais savoir comment enregistrer les résultats d'exécution du programme (ce qui est affiché sur le console). Dois je besoin d'un code?
Pourriez vous m'aider?
Merci par avance

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 5 Mar 2009 - 1:13

nouveau-programmeur a écrit:Salut,
je voudrais savoir comment enregistrer les résultats d'exécution du programme (ce qui est affiché sur le console). Dois je besoin d'un code?
Pourriez vous m'aider?
Merci par avance
Le plus simple est de lancer l'application en faisant une redirection de la sortie vers un fichier (texte)
[DOS/Console Windows]
Code:
C:\> monappli > monfichier.txt
ou
[Console unixoïde]
Code:
* monappli > monfichier.txt
C'est une question de système et non de langage C.


Dernière édition par -ed- le Jeu 5 Mar 2009 - 19:11, édité 1 fois
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Jeu 5 Mar 2009 - 18:26

j'ai pas bien compris.
Pourriez vous m'expliquer d'avantage?la fonction fopen ne marche pas dans ce cas?

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 5 Mar 2009 - 18:52

nouveau-programmeur a écrit:j'ai pas bien compris.
Pourriez vous m'expliquer d'avantage?la fonction fopen ne marche pas dans ce cas?
Il y a 2 manières de procéder.

Soit on demande au système de rediriger la sortie standard (stdout) dans un fichier. Ca se fait en plaçant " > fichier" sur la ligne de commande, comme je l'ai déjà expliqué.

Soit on le fait par programmation en utilisant freopen() au début du programme, qui permet, par exemple, de rediriger le flux stdout dans un fichier texte.
Code:
freopen ("fichier.txt", "w", stdout);

Par exemple :

ce code
Code:

#include <stdio.h>

int main (void)
{
  freopen ("fichier.txt", "w", stdout);
  printf ("Hello world\n");

  return 0;
}
ne produit rien de visible à l'écran :
Code:


Process returned 0 (0x0)  execution time : 0.193 s
Press any key to continue.
Mais il a produit un fichier "fichiet.txt" qui contient :
Code:

Hello world
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Sam 14 Mar 2009 - 23:42

Est ce que c'est possible d'enregistrer le temps d'exécution, les essais réalisés qui sont affichés sur la console?
Quel est le code en c qui permet celà?
Merci!

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Dim 15 Mar 2009 - 13:50

nouveau-programmeur a écrit:Est ce que c'est possible d'enregistrer le temps d'exécution, les essais réalisés qui sont affichés sur la console?
Quel est le code en c qui permet celà?
Merci!
Il y a plusieurs méthodes :

1 - ne pas modifier le code.

Lancer l'exécutable avec une redirection de stdout vers un fichier texte :

Code:
monappli > sortie.txt

Les résultats se trouvent alors dans le fichier sortie.txt

2 - ajouter une redirection dans le code.

Au début du main(), on appelle freopen()

http://www.cplusplus.com/reference/clibrary/cstdio/freopen.html

3 - modification lourde du code.

Au lieu de printf ( /*... */), on utlise fprintf (fp, /*... */), en ayat au préalable ouvert fp en mode texte (FILE *fp = fopen ("sortie.txt", "w");

P.S. : J'ai un peu l'impression de me répéter là... Ah, tu parles d'enregistrer les temps annoncés par Code::Blocks ? A ma connaissance, ce n'est pas prévu. Il y a peut être une option de configuration que je ne connais pas.


Dernière édition par -ed- le Mer 18 Mar 2009 - 22:08, édité 1 fois
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Mer 18 Mar 2009 - 21:08

merci;
j'ai essayé cet exemple mais je trouve rien dans le fichier de sortie(ni les valeur entrée par le clavier , ni les sorties).
Pourriez vous m'aider svp?

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

int main()
{
freopen ("myfile.txt","w",stdout);

 /* Déclarations */
 int U[50], V[50]; /* tableaux donnés */
 int N;    /* dimension        */
 int I;    /* indice courant  */
 long PS;  /* produit scalaire */
 /* Saisie des données */
 printf("Dimension des tableaux (max.50) : ");
 scanf("%d", &N );
 printf("** Premier tableau **\n");
 for (I=0; I<N; I++)
    {
    printf("Elément %d : ", I);
    scanf("%d", &U[I]);
    }
 printf("** Deuxième tableau **\n");
 for (I=0; I<N; I++)
    {
    printf("Elément %d : ", I);
    scanf("%d", &V[I]);
    }
 /* Calcul du produit scalaire */
 for (PS=0, I=0; I<N; I++)
      PS += (long)U[I]*V[I];
  /* Edition du résultat */
 printf("Produit scalaire : %ld\n", PS);
 fclose (stdout);

 return 0;
}

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 19 Mar 2009 - 1:02

nouveau-programmeur a écrit:j'ai essayé cet exemple mais je trouve rien dans le fichier de sortie(ni les valeur entrée par le clavier , ni les sorties).
En tapant
2
1
2
3
4
j'obtiens :
Code:

Dimension des tableaux (max.50) : ** Premier tableau **
Elément 0 : Elément 1 : ** Deuxième tableau **
Elément 0 : Elément 1 : Produit scalaire : 11
Nota : il est normal que ce qui a été tapé au clavier, et 'echoisé' par le système, c'est à dire sans passer par stdout) ne se retrouve pas dans le fichier.

En principe, dans un programme de test, on utilise un fichier texte en entrée, qui est lu en appliquant le même principe à stdin :
Code:
freopen (data_in.txt", "r", stdin);
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Jeu 19 Mar 2009 - 12:44

Bonjour,
comment crée le fichier stdin (data_in.txt)?
Merci

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 19 Mar 2009 - 12:56

nouveau-programmeur a écrit:comment crée le fichier stdin (data_in.txt)?
C'est un simple fichier texte. Une commande par ligne
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Jeu 19 Mar 2009 - 13:31

-ed- a écrit:
nouveau-programmeur a écrit:comment crée le fichier stdin (data_in.txt)?
C'est un simple fichier texte. Une commande par ligne
je n'ai pas bien compris.pourriez vous m'expliquer d'avantage.
Merci pour votre compréhension

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 19 Mar 2009 - 14:12

nouveau-programmeur a écrit:
-ed- a écrit:
nouveau-programmeur a écrit:comment crée le fichier stdin (data_in.txt)?
C'est un simple fichier texte. Une commande par ligne
je n'ai pas bien compris.pourriez vous m'expliquer d'avantage.
Merci pour votre compréhension
Si tu veux passer les commandes 1<enter>23<enter>hello<enter>, tu écris un fichier texte qui contient :
Code:

1
23
hello
C'est compliqué ?
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Jeu 19 Mar 2009 - 16:03

Avec le compilateur peut -on crée un fichier de données ? Sinon quel logiciel(word pad, non)?

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  -ed- Jeu 19 Mar 2009 - 20:18

nouveau-programmeur a écrit:Avec le compilateur peut -on crée un fichier de données ? Sinon quel logiciel(word pad, non)?
Avec un compilateur non, mais avec l'outil (l'éditeur) que tu utilises pour créer un fichier C, oui. il suffit de lui donner le nom que tu veux.
-ed-
-ed-
Admin
Admin

Messages : 290
Date d'inscription : 26/05/2008
Age : 67
Localisation : Paris 14eme arrondissement (75, France)

http://bien-programmer.fr

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  nouveau-programmeur Jeu 19 Mar 2009 - 23:41

Bravo king ed.
C'est très clair maintenant.
Merci!

nouveau-programmeur
Bavard
Bavard

Messages : 30
Date d'inscription : 23/02/2009

Revenir en haut Aller en bas

enregistrement des résultats de l'exécution du programme Empty Re: enregistrement des résultats de l'exécution du programme

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser