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 fichier et map


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    F�vrier 2009
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 141
    Par d�faut 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 : 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
    #include <map>
    #include <string>
     
    #ifndef _exemple_h
    #define _exemple_h
     
     
    class exemple{
     
     
     
    private:
     
     
    public:
     
    	exemple();
    	virtual ~exemple();
    	bool lecturedefichier(const exemple & monexemple);
     
     
     
     
     
    };
    #endif
    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
    #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 : 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
     
    #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;
    }

  2. #2
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Peux tu nous donner les messages d'erreur s'il te plait ? Je pense que cela nous aidera.
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirm�
    Inscrit en
    F�vrier 2009
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 141
    Par d�faut
    bien sur,

    \exemple.cpp(35) : error C2678: '=' binaire*: aucun op�rateur trouv� qui accepte un op�rande de partie gauche de type 'const exemple' (ou il n'existe pas de conversion acceptable)
    1> c:\documents and settings\administrateur\mes documents\visual studio 2008\projects\exempledev\exempledev\exemple.h(25): peut �tre 'exemple &exemple::operator =(const exemple &)'
    1> lors de la tentative de mise en correspondance de la liste des arguments '(const exemple, std::map<_Kty,_Ty>)'
    1> with
    1> [
    1> _Kty=std::string,
    1> _Ty=int
    1> ]
    1>main.cpp
    1>.\main.cpp(14) : error C2660: 'exemple::lecturedefichier'*: la fonction ne prend pas 0 arguments
    1>Le journal de g�n�ration a �t� enregistr� � l'emplacement "file://c:\Documents and Settings\Administrateur\Mes documents\Visual Studio 2008\Projects\exempleDev\exempleDev\Release\BuildLog.htm"
    1>exempleDev - 2 erreur(s), 0 avertissement(s)
    ========== G�n�ration*: 0 a r�ussi, 1 a �chou�, 0 mis � jour, 0 a �t� ignor� ==========

  4. #4
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    En ce qui concerne l'erreur ligne 14 de ton main
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    monexemple->lecturedefichier();
    le message d'erreur est clair, cette fonction n'attend pas 0 param�tre.

    En regardant le .h, on voit effectivement que la fonction est d�clar�e comme cela :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    bool exemple::lecturedefichier(const exemple& monexemple)
    C'est d'ailleurs un peu bizarre comme d�claration, je m'attendais plut�t � un nom de fichier mais tu dois savoir ce que tu fais.
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre confirm�
    Inscrit en
    F�vrier 2009
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 141
    Par d�faut
    Je comprends pourquoi tu penses ca.
    Mais en fait le nom de fichier viens � la suite de ifstream file.

    Ce que je recherche � faire c'est de recopier la valeur de ma map dans (const exemple& monexemple).
    Comprends tu ce que je cherche � faire?
    Je dois dire que tout fonctionne tres bien lorsque je renvoie void et que je fais un cout dans ma methode. Donc ma map est bien remplie.

    Je passe � cot� de quelque chose mais je ne sais pas encore quoi.

  6. #6
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Tu ne peux pas copier ta map dans const exemple& monexemple. Cela reviendrai � modifierl'objet monexemple et il est constant donc tu n'as pas le droit de le modifier.

    Donc soit ton besoin n'est pas clair, soit tu cherches � faire des choses interdites avec ton objet.
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre confirm�
    Inscrit en
    F�vrier 2009
    Messages
    141
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2009
    Messages : 141
    Par d�faut
    J'ai donc plusieurs solutions, soit j'enl�ve le const. Ou soit au lieu de retourner un bool, je retourne ma map directement. Je vais tester tout �a mais il me semblait que je pouvais faire �a, c'est une esp�ce de surcharge en faite.

  8. #8
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Bonjour,
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bool exemple::lecturedefichier(const exemple& monexemple){//méthode
     
    	string caractere;
    	int nombre;
    	map<string, int> my_map;
    //.... 
    			monexemple = my_map;
    //....
    1/Tu d�clares monexemple comme const. Donc tu ne peux affecter une valeur � celui-ci
    2/Je n'ai rien vu qui puisse transformer ton map en exemple.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    int main ()
    {
    exemple* monexemple	= new exemple;
    monexemple->lecturedefichier();
    }
    1/ Quel est l'int�r�t d'allouer monexemple sur le tas ? Pourquoi ne pas en faire une variable sur la pile ?
    2/ lecturedefichier doit prendre un argument et tu ne lui en fournis pas.

Discussions similaires

  1. Probl�me de lecture du fichier de mapping
    Par sylsau dans le forum Hibernate
    R�ponses: 5
    Dernier message: 11/04/2007, 12h06
  2. [jsp]lecture de fichier
    Par antigone dans le forum Servlets/JSP
    R�ponses: 9
    Dernier message: 04/09/2003, 11h05
  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