Structure donnés + fichiers

afrodoz81 Messages postés 4 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 28 février 2008 - 27 févr. 2008 à 17:52
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 28 févr. 2008 à 17:36
Bonjour,

J'aimerai utiliser une structure afin de pouvoir scruter un fichier et de stocker les mots

de plus de 3caracteres + leur position dans un autre fichier et de les afficher

Pour cela jai :

------------------------------------------------------

//Fonction de creation de Mots

----------------------------------------------------

????? maFonction(ifstream fichier){

struct MaListe

{

unsigned int distance;//position par rapport au debut du fichier dumot

char *Mot;// le mot long

};

......

}
//fin ????? maFonction(ifstream fichier)

------------------------------------------------

//Main

----------------------------------------------------

int main(int argc , char *argv[])

{

if ( is_readable( argv[1] ) && ( is_readable( argv[2] ) ) )

{

?????????

}

else cerr<<errorfic();

}

}

les fonctions is_readable et errorfic() ne sont pas mis volontairement!(inutilent ici)

ps : je suis debutant en c++ donc tout aide est le bienvenue .Merci

6 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
28 févr. 2008 à 13:10
Mais si tu débutes, il serait plus sage d'éviter les streams du C++ et d'utiliser uniquement les fonctions du C:
http://www.cplusplus.com/reference/clibrary/cstdio/fopen.html
0
afrodoz81 Messages postés 4 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 28 février 2008
28 févr. 2008 à 14:15
Rappel je dois lire un fichier passer en parametre puis récuperer tout les mots de plus de 3caracteres
et de les enregistrer avec leur position(par rapport aau début du fichier)!
Pour cela j'ai utiliser 2 classes :


-une classe main : test d'ouverture du fichier+ lancement du programme


-Et une classe CreationListe : cree une map et ajoute les mots et leur position dans le map puis de les afficher


J'ai fait :
---------------------------------------
Classe main-->
----------------------------------------
int main(int argc , char *argv[])
    {
            
             CreationListeRef clr;
             clr.remplirListe(argv[1]);
}
--------------------------------
Classe CreationListe.cpp-->
--------------------------------------
class CreationListe
{
public :
           


   
    int Getdistance() const {return dist; }//retourne la distance du mot
    char* Getmot(){return mot;}  //retourne le mot
    void remplirListe(char *f);
    void afficherListe();
    CreationListeRef();
      
    
private :
   
      int dist;
      char *mot;
      ifstream fichier;
};


void remplirListe(char *f){
   typedef map<char *, int> monMap;//la clé sera le mot et la distance la valeur du map
  monMap table;
   ifstream fichier(f, ios::in);// On ouvre le fichier en lecture
     
//La partie ci-dessous n'est qu'un test !
   table["Perus"] = 164468443;
    monMap::iterator it; //curseur sur le map
        std::string key = (*it).first;
        int number = (*it).second;
cout << "name " << key << "  number " << number << std::endl;
      
     }
void afficherListe(){
   ????????
     }


A partir de là je suis bloqué.Pourquoi quand ca n'affiche pas le cout??
Merci d'avance
Ps : je suis debutant en c++
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
28 févr. 2008 à 14:59
"monMap::iterator it; //curseur sur le map"
=> Quelle map ? tu l'initialises pas ...

monMap::iterator it = table.find("Perus");

Mais tu réponds pas à ma question ? c'est un cours qui t'oblige à faire du C++ ?
0
afrodoz81 Messages postés 4 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 28 février 2008
28 févr. 2008 à 15:56
  On a un mini-projet  en c++ ! c'est une contrainte du prof de le faire en c++.
J'aimerai juste scruter un fichier puis reperer les mots longs afin de pouvoir les ajouter dans un fichier avec leur position dans le fichier.

Mais la je rame un peu beaucoup c'est pourquoi je demande qu'on m'aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
afrodoz81 Messages postés 4 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 28 février 2008
28 févr. 2008 à 16:28
---------------->
void remplirListe(char *f){
typedef map<char *, int> monMap;
monMap table;//creation d'un objet map

    table["Perus"] = 164468443;
     monMap::iterator it = table.find("Perus");
       std::string key = (*it).first;
      int number = (*it).second;
cout << "name " << key << "  number " << number << std::endl;
      }
------------------->
int main(int argc , char *argv[])
    {
            CreationListeRef clr;
             clr.remplirListe(argv[1]);
  }//main

il n'y a pas de bug mets le programme se lance pas  
Message :
 - multiple definition of `remplirListe(char*)'
-  first defined here
-  multiple definition of `afficherListe()'
-  first defined here ....
?????? fallait pas que je declare les fonctions dans la classe CreationListe?
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
28 févr. 2008 à 17:36
Le pb n'est pas ici mais de ta structure de fichiers .h/.cpp. Tes .h sont mauvais.
0
Rejoignez-nous