IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Moyenne de valeurs contenues dans un fichier .txt


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Moyenne de valeurs contenues dans un fichier .txt
    Bonsoir,
    Je cherche à créer un programme qui:

    * ouvrir le fichier valeurs.txt (qui contient une liste de nombre) et calculer la moyenne des nombres présent dans le fichier
    * écrire le résultat de la moyenne à la fin du fichier



    J'ai réalisé ce programme. Il calcul la moyenne et l'écrit à la fin du fichier! le truc c'est que lorsque je relance le programme la dernière valeur (i.e: la valeur de la moyenne qui avait été calculé lors de la première exécution) n'est pas prise en compte!
    En fin je sais pas si c'est très clair... essayer mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    /* Prototypes */
    float MoyenneFichier(char nom[]);
    void EcritureMoyenne(char nom[], float moyenne);
     
    int main()
    {
    	float resu=0;
     
        resu=MoyenneFichier("valeurs.txt");      /* Appel de la fonction  */
     
        printf("La moyenne est %f\n", resu);     /* Affichage du résultat */
     
        EcritureMoyenne("valeurs.txt",resu);     /* Ecriture du resultat  */
     
        return EXIT_SUCCESS;
    }
     
     
    float MoyenneFichier(char nom[])
    {
        FILE *MonFichier;
        float somme=0,var,moyenne,num;
        int i=0;
     
        /* ouverture du fichier valeurs.txt en lecture (mode ''r'').*/
        MonFichier = fopen(nom, "r");
     
        while(fscanf(MonFichier,"%f",&var) != EOF) //tant qu'on est pas à End Of File on boucle
            {
                somme=somme+var;
                i=i+1;
            }
     
        moyenne=somme/i;
     
        /* Fermeture du fichier */
        fclose(MonFichier);
     
        return moyenne;
    }
     
    void EcritureMoyenne(char nom[], float moyenne)
    {
        FILE *Fichier;
     
        /* ouverture du fichier valeurs.txt en lecture (mode ''a'').*/
        Fichier = fopen(nom, "a");
     
        fprintf(Fichier," %f ",moyenne);
     
        /* Fermeture du fichier */
        fclose(Fichier);
    }

    Si vous pouviez me dire là où ça coince!

    Merci
    Romain

    ps: j'ai pas encore gérer le cas ou le fichier valeurs.txt n'existe pas... mais c'est pas un soucis, je ferai ça plus tard!

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 757
    Points
    23 757
    Par défaut Normal ?
    Il me semble que si tu ajoutes à ton fichier une valeur qui est la moyenne de toutes les autres, alors la nouvelle moyenne doit rester inchangée ! C'est mathématique.

    Ouvre déjà dans un éditeur ton fichier de sortie pour voir si ta nouvelle valeur a bien été ajoutée, ensuite modifie-la et relance ton programme, pour voir ...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    oui en effet c'est mathématiques... je sais pas à quoi je pensais hier!
    Merci

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 757
    Points
    23 757
    Par défaut
    De rien, mais n'oublie pas !

    À bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/09/2009, 10h35
  2. Réponses: 7
    Dernier message: 30/10/2008, 11h31
  3. Défilement d'un texte contenu dans un fichier .txt
    Par Gwegz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/07/2007, 10h36
  4. Réponses: 4
    Dernier message: 26/06/2006, 11h41
  5. Réponses: 3
    Dernier message: 29/05/2006, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo