Lecture de fichier et map
Bonjour, j'ai mis un code cette fois ci pour que vous compreniez mieux mon problème. Mon exemple lit les éléments dans un fichier. txt récupéré les éléments de ce .txt et le stocke dans une map.
J'ai 2 messages d'erreur.
Le premier, il semble pas vouloir recopier la map.(voir code)
Le second, il me demande un paramétre dans mon main, ce qui est normal mais pourtant je passe ce parametre en interne via mon egalité.
Ce que j'aimerais c'est pouvoir imprimer ensuite la map depuis mon main mais je renvoie un bool...
Puis, mettre la majeur partie de ce qui se trouve dans la méthode lecturedefichier dans mon constructeur et appeler la map creer dans le constructeur via ma méthode.
Merci pour les précisions.;)
Code:
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
| #include <map>
#include <string>
#ifndef _exemple_h
#define _exemple_h
class exemple{
private:
public:
exemple();
virtual ~exemple();
bool lecturedefichier(const exemple & monexemple);
};
#endif |
Code:
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
| #include "exemple.h"
#include <iostream>
#include <fstream> //file lib
#include <istream>
#include <string>
#include <map>
using namespace std;
exemple::exemple(){};//constructeur
exemple::~exemple(){};//destructeur
bool exemple::lecturedefichier(const exemple& monexemple){//méthode
string caractere;
int nombre;
map<string, int> my_map;
ifstream file("Document.txt");
if (file)
{
while(!file.fail())
{
file>>caractere>>nombre;
my_map[caractere]=nombre;
cout<<caractere<<"-"<<nombre<<endl;
}
//debug
//for (map<string, int>::iterator i = my_map.begin(); i!=my_map.end();i++)
//{
// cout<<"caractere : "<<i->first<<"nombre : "<<i->second<<endl;
//}
monexemple = my_map;
}
else
{
cout<<"ERROR : can't open file";
}
return true;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include <iostream>
#include <fstream> //file lib
#include <istream>
#include <string>
#include <map>
#include "exemple.h"
using namespace std;
int main ()
{
exemple* monexemple = new exemple;
monexemple->lecturedefichier();
cout<<"hello";
getchar();
return 0;
} |