Se connecter avec
S'enregistrer | Connectez-vous

You are not allowed to do this.

c++ aide fichier et conteneur

Dernière réponse : dans Programmation

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 au 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 :
CreationListeRef();
void remplirListe(char *fic);
void afficherListe();



private :

int dist;
char *mot;
ifstream fichier;
};

void remplirListe(char *fic){
typedef map<char *, int> monMap;// clé =mot et la position=valeur
monMap table;

//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(){
????????
}

Pourquoi quand ca n'affiche pas le cout??
Sinon si vous avez des idées de comment je pourrai proceder sachant que j'ai juste 2jours pour le faire !!
Ps : je suis debutant en c++
Merci d'avance

Autres pages sur : aide fichier conteneur

Lassé par la pub ? Créez un compte

platinium56 a dit :

Pourquoi quand ca n'affiche pas le cout??

la phrase n'est pas compléte, si ? :) 

sinon la classe map a besoin d'une clé triable et la valeur doit être un type assignable
or le (char *) n'est pas triable, tu devrais utiliser
  1. std::map <std::string, int>


ensuite, tu définis la variable "table" à l'intérieur de la fonction remplirListe, elle n'existera plus à la fin de cette fonction!

sinon qu'est ce que tu veux dire par position dans le fichier (ligne, octet...?)

pour commencer, tu devrais faire juste une fonction main () (main n'est pas une classe, C++ != java)

tu dis que tu veux chercher tous les mots > 3 lettres, je vois pas le role de argv[1]?

bref, vas y petit à petit, déjà lis les lignes du fichier.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde