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 :

Erreur de compilation sur une fonction utilisant les flux


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de alves1993
    Homme Profil pro
    Développeur Java/Dart/Javascript/Android (FullStack)
    Inscrit en
    Décembre 2012
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java/Dart/Javascript/Android (FullStack)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 222
    Par défaut Erreur de compilation sur une fonction utilisant les flux
    Salut

    J'ai un problème au niveau de ma fonction.en fait je voudrais récupéré les mots d'un fichier.txt pour les mettre dans un tableau, les mots du fichier.txt sont disposés de cette manière
    MOT1
    MOT2
    MOT3
    voici mon code qui pose un problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void recueilleMot(ifstream fichier,  vector <string> &tabMot)
    {
    	string mot;
    	while (getline(fichier, mot))
    	{
    		tabMot.push_back(mot);
    	}
    }


    maintenant voici le prototype


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void recueilleMot(ifstream fichier, vector <string> &tabMot);
    quand je débogueur il me signal ces erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Erreur	1	error C2065: 'ifstream'*: identificateur non déclaré mesfonc.h	4	1	test
    Erreur	2	error C2146: erreur de syntaxe*: absence de ')' avant l'identificateur 'fichier'   mesfonc.h	4	1	test
    Erreur	3	error C2182: 'recueilleMot'*: utilisation non conforme du type 'void'	 mesfonc.h	4	1	test
    Erreur	4	error C2059: erreur de syntaxe*: ')'	mesfonc.h	4	1	test
    Erreur	5	error C2065: 'ifstream'*: identificateur non déclaré   mesfonc.h	4	1	test
    Erreur	6	error C2146: erreur de syntaxe*: absence de ')' avant l'identificateur 'fichier'	mesfonc.h	4	1	test
    Erreur	7	error C2182: 'recueilleMot'*: utilisation non conforme du type 'void'	mesfonc.h	4	1	test
    Erreur	8	error C2059: erreur de syntaxe*: ')'	mesfonc.h	4	1	test
    Erreur	9	error C2365: 'recueilleMot'*: redéfinition*; la précédente définition était 'variable de données'    ajoutedeux.cpp	13	1	test
    bon j'ai essayer d'autre solution mais toujours le même problème pouvez vous m'aider.
    Un geek ne vieillit pas, il se met à jour.

    Pour plus d'informations sur Android regarder la faq Android.
    Ensuite les tutoriels Android sont disponibles ici
    Pour les mecs, qui n'arrivent pas toujours à digérer le Javascript, Dart peut-être une solution pour vous.

  2. #2
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    L'erreur est qu'il faut passer le flux par référence, les flux ne sont pas copiables.

    (Tu as dû oublier d'inclure fstream aussi.)

  3. #3
    Membre très actif Avatar de alves1993
    Homme Profil pro
    Développeur Java/Dart/Javascript/Android (FullStack)
    Inscrit en
    Décembre 2012
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java/Dart/Javascript/Android (FullStack)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 222
    Par défaut
    il s’avère que je n'ai pas oublier de mettre le <fstream> et j'ai passé les flux par référence mais rien de concret le débogueur me signal qu'il y a toujours des erreurs
    Un geek ne vieillit pas, il se met à jour.

    Pour plus d'informations sur Android regarder la faq Android.
    Ensuite les tutoriels Android sont disponibles ici
    Pour les mecs, qui n'arrivent pas toujours à digérer le Javascript, Dart peut-être une solution pour vous.

  4. #4
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Bonjour, peux-t-on avoir ces nouvelles erreurs ?

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    si tu n'as pas utilisé la directive using namespace std; ( que je ne recommande personnellement absolument pas d'utiliser, et dont je t'interdirai l'usage dans les fichiers d'en-tête ), il faut garder en mémoire que tout ce qui vient de la bibliothèque standard se trouve dans l'espace de noms std.

    Cela signifie que, pour pouvoir utiliser la classe ifstream, il faut utiliser son "nom complet" (on parle de "nom pleinement qualifié"), à savoir std::ifstream.

    Il en ira de même pour vector, pour string et pour getline, bref, pour tout ce qui nécessite (on va faire simple ) l'inclusion d'un fichier d'en-tête sans extension.

    Si tu es sur d'avoir inclus les fichiers d'en-tête requis (j'en dresserai la liste tout de suite ) dans ton propre fichier d'en-tête (parce que c'est nécessaire aussi pour le prototype), tu devrais au final te retrouver avec quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void recueilleMot(std::ifstream fichier, std::vector <std::string> &tabMot);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void recueilleMot(std::ifstream fichier,  std::vector <std::string> &tabMot)
    {
    	std::string mot;
    	while (std::getline(fichier, mot))
    	{
    		tabMot.push_back(mot);
    	}
    }
    Nota: Pour que ton code puisse compiler, il faudra penser à inclure les fichiers d'en-tête
    1. <string> (pour... std::string)
    2. <vector> (pour std::vector) et
    3. <fstream> (pour std::ifstream
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre très actif Avatar de alves1993
    Homme Profil pro
    Développeur Java/Dart/Javascript/Android (FullStack)
    Inscrit en
    Décembre 2012
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java/Dart/Javascript/Android (FullStack)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 222
    Par défaut
    super sa passe .
    ok merci pour le conseil a propos du fichier d’entête using namespace std;
    Un geek ne vieillit pas, il se met à jour.

    Pour plus d'informations sur Android regarder la faq Android.
    Ensuite les tutoriels Android sont disponibles ici
    Pour les mecs, qui n'arrivent pas toujours à digérer le Javascript, Dart peut-être une solution pour vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/09/2010, 17h05
  2. Réponses: 7
    Dernier message: 12/11/2006, 12h49
  3. Erreur "type incompatible" sur une fonction
    Par Ricardo_Tubbs dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 11h59
  4. Erreur de compilation sur une librairie en mode debug
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2006, 16h32
  5. erreur PLS-00103 sur une fonction
    Par atruong dans le forum Oracle
    Réponses: 2
    Dernier message: 28/04/2006, 13h49

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