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

Bibliothèque standard C Discussion :

Lecture de valeurs doubles dans un fichier


Sujet :

Bibliothèque standard C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Lecture de valeurs doubles dans un fichier
    Bonjour !

    Je me suis mis en tête de coder un programme pour mon TPE de 1ere sur l'intelligence artificielle un peu a la bourre. Et après quelques heures de travaille a pinailler comme il faut par manque d'habitude ( ça vient ça vient :p ) j'avance petit a petit.
    Le code devant être fini mercredi et ne trouvant pas comment faire je viens poster mon problème ici en espérant avoir des réponses à temps ^-^.

    J'ai une fonction "ouverture" qui intervient au debut de la fonction main qui est sensée lire deux fichiers et mettre ces deux fichier dans des tableau double.

    fichiers ecrit sous la forme :

    90\n
    1024.58\n
    0.45\n
    [..]
    458\n

    voici la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void ouverture(double prixAme[],double gain[]) // les deux tableaux
    {
        int i=0;
        FILE *Prix = NULL , *Gain=NULL;
        Prix = fopen("prixAme.txt", "r");
        Gain = fopen("gainAme.txt", "r");
        for ( i = 0 ; i <10 ; i++)
        {
            fgets(prixAme[i],50, Prix); 
            fgets(gain[i],50,Gain);
        }
        fclose(Prix);
        fclose(Gain);
    }
    L'erreur doit etre aussi grande que la fureur qui risque de s'abattre sur moi mais je sais pas :/

    Dans ees logs j'ai un : |102|error: incompatible type for argument 1 of 'fgets'|

    Voila merci beaucoup du temps que vous passerez a me lire et peut etre a m'aider !:)
    ( Et je m'excuse pour les fautes d'orthographes je suis une bille j'en ai probablement loupé :/ )


    si besoin voici mon main.c :
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include "Scores.h"
    #define NBR_AMELIORATION 10
     
     
     
    int main()
    {
        int continuer=1;
     
     
        double resultat[NBR_AMELIORATION]={0};
        double prixAme[NBR_AMELIORATION]={0};   //= {30, 100, 1000, 10000, 50000, 200000, 500000, 1000000, 5000000, 30000000}; les vrais valeurs
        double gain[NBR_AMELIORATION]={0};//  = {0.1, 0.3, 1, 3.1, 6, 20, 40, 70, 300, 1500}; same
        //ouverture(prixAme, gain);
     
        while(continuer)
        {
            int i=0, e=0, stock = 0;
            char chaine[20]="";
     
            for (i=0; i<NBR_AMELIORATION; i++)
            {
     
                resultat[i] = prixAme[i] / gain[i];
                printf("La valeur d'un cookie pour la %d amelioration est de %f \n", (i), resultat[i]);
     
            }
            printf("\n\n");
     
            stock = resultat[0];
            for (i=0; i < NBR_AMELIORATION ; i++)
            {
                if (resultat[i] < stock )
                {
                    stock = resultat[i];
                    e = i;
                }
     
            }
     
            printf ("L'amelioration la plus optimale a votre niveau de jeu est ");
            lireNom(&e,&chaine);
            update(prixAme, &e);
            recommencer(&continuer);
            if ( continuer ==0) sauvegarder (prixAme);
     
     
        }
        return 0;
    }

  2. #2
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Bonsoir,

    L'erreur indique que le premier argument est incompatible.

    Selon ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets(gain[i],50,Gain);
    Or gain est un tableau de "double".. ..selon la doc il vous faut un "char *" : http://www.cplusplus.com/reference/cstdio/fgets/

    Etanne

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Effectivement .... Merci ^-^

    Du coup un moyen simple de récupérer un double d'un fichier dans un tableau existe il ?

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 483
    Points : 13 685
    Points
    13 685
    Billets dans le blog
    1
    Par défaut
    Regarde ce que peut faire la fonction fscanf(). Elle fonctionne comme scanf() mais prend un paramètre supplémentaire : le nom du fichier depuis lequel lire les données. Pour info : http://xrenault.developpez.com/tutoriels/c/scanf/

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour tout !
    Tout fonctionne c'est parfait !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2011, 14h59
  2. Lecture d'un double dans un fichier
    Par luilui dans le forum Langage
    Réponses: 7
    Dernier message: 15/01/2009, 23h30
  3. Réponses: 9
    Dernier message: 12/08/2008, 16h50
  4. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  5. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57

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