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 :

Lecture de fichiers et comparaison


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Par défaut Lecture de fichiers et comparaison
    Bien le bonsoir à tous.

    Je débute un peu le C++ à la fac sous CodeBlocks, me voici face à un exercice assez complexe je dois dire, l'exercice à été posé hier en contrôle, j'aurai voulu en discuter un peu avec vous, puisque ce n'est jamais corrigé U_u. J'espère que vous pourrez m'éclairer.

    Voici l'énoncé: http://gosms.3g.cn/D?f=ORSE3DDBI01bI_ViaGoSMS

    http://gosms.3g.cn/D?f=ONGMDM6LV01gI_ViaGoSMS

    en deux parties, veuillez m'excuser pour la qualité.

    Donc voici ce que j'ai fais:

    Dans Detecteur.cpp

    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
    #include <iostream> 
    #include <string> 
    #include <fstream>
    
    using namespace std;
    
    
    void lecture(string*noms , double*energie, int &N)
    {
     fstream f;
    f.open("particules.txt",ios::in);
    f>>N;
    noms=new string[N];
    energie=new double[N];             //Mais là j'ai un doute, puisqu'on me dit de créer les tableaux dynamiquement dans Main,
    
    for(int i=0;i<N;i++)
    
    {f>>noms[i]>>energie[i];}
    
    f.close();
    }
    
    
    double correction ( string particule [], int N )
    {
    
    fstream f;
    f.open ("correction.txt",ios::in);
    for (int i=0;i<N;i++)
        { 
              f>>particule[i]; 
        }
    
    C'est la que ça se gatte, comment comparer "en gros" les deux fichiers et renvoyer le facteur correctif à chaque particule ?
    Je pensais à un if(noms[i]=particules[i]=='p') return 1.03 etc etc maiiis ça me gène, je me demande si c'est possible, comment faire correspondre chaque particule ( au nombre de 5 dans la liste correction.txt ) aux 6 particules de la liste particules.txt tout en renvoyant le facteur correctif...
    
    double calculEnergie(string*noms, double*energie, int N)
    
    Du coup je suis un peu coincé pour cette fonction
    
    int comptePositive (string*noms, int N)
    {
    int positif=0;
    for (int i=0;i<N;i++)
    { if (noms [i]=='+')
    positif=positif+1; }
    return positif;
    }
    Pour le fichier .h c'est ok, et pour le main j'ai la marche à suivre.

    Je remercie la personne qui se penchera sur mon cas.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,



    Les liens que tu nous as donné sont invalides (le serveur met trop de temps à répondre).


    C'est la que ça se gatte, comment comparer "en gros" les deux fichiers et renvoyer le facteur correctif à chaque particule ?
    Je pensais à un if(noms[i]=particules[i]=='p') return 1.03 etc etc maiiis ça me gène, je me demande si c'est possible, comment faire correspondre chaque particule ( au nombre de 5 dans la liste correction.txt ) aux 6 particules de la liste particules.txt tout en renvoyant le facteur correctif...
    J'ai vraiment du mal à comprendre ce que tu essayes de faire, peut-être que le sujet m'éclairera.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Par défaut
    C'est édité merci !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    pourrais-tu faire un effort sur la présentation du code ? C'est très mal indenté et donc illisible.

    Je me suis arrêté à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    noms=new string[N];
    energie=new double[N]
    Mis à part qu'il manque un ; les pointeurs sont passés en paramètre et par copie, donc ce que tu crées est interne à la fonction, jamais le paramètre ne sera alloué, donc fuite mémoire.
    Pour utiliser un paramètre out, il faut utiliser des références ou pointeurs. Mais quand le paramètre est un pointeur, il faut un pointeur de pointeur, ou une référence du pointeur.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Par défaut
    On nous à pour l'instant appris à coder tel quel je ne sais pas ce que je peux faire de plus

    Et pour moi, les pointeurs de pointeur c'est du jamais vu...

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    encore un vieux prof (chercheur?) qui faisait du on-sait-pas-quoi (fortran?) et qui s'est dit cout, c'est cool... on va faire du C en C++…

    Courage, la programmation, ca s'apprend par la pratique, lis donc la faq C et celle du C++, d'un bout à l'autre.

    Tu y trouveras plein de conseils utiles.

    La faq C contient quelques principes utiles en C++, mais les deux langages sont différents, surtout dans leurs philosophies.

Discussions similaires

  1. lecture fichier et comparaison chaines de caracteres
    Par john123 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 08/05/2007, 11h38
  2. lecture de fichier avec comparaison
    Par idsec dans le forum Web
    Réponses: 1
    Dernier message: 25/04/2007, 17h25
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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