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

MFC Discussion :

Problème de std


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut Problème de std
    Bonjour tout le monde,

    voila mon problème :

    Je souhaite utiliser des fonctions de la STD mais en incluant les librairies correspondantes cela ne marche pas.
    Pour y remédier, j'ai essayé la méthode "forçage" avec std::"le nom de la fonction".

    Et alors là, Oh surprise!!! Le compilateur me dit :
    error C2653: 'std' : is not a class or namespace name


    C'est un peu problématique quand meme.

    Après avoir chercher dans la FAQ, je vous appel à la rescousse car là je bloque.

    Merci

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    difficile de cerner ton problème, mais au cas où:
    - si tu utilise std::string, il faut inclure <string> (#include <string>)
    - si tu utilise std::vector, il faut inclure <string> (#include <vector>)
    etc.

    Hope it helps.

  3. #3
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    J'ai résolu une partie du problème en faisant comme tu as dit:
    std::string et #include<string>

    mais ça ne marche pas pour le reste:

    J'utilise la fonction getline de istream mais le compilateur ne la reconnait pas.
    J'ai essayé la même méthode que pour les string mais ca ne marche pas non plus.

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    t'as inclus ca : #include <iostream>

  5. #5
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Vive Visual C++ et ses bugs!!!
    Je l'avais déjà inclus et testé mais ça n'avait pas marché.
    Je viens de recompiler et c'est passé nickel.

    Par contre maintenant il bloque sur getline.
    C'est bien ça la syntaxe : std::getline( 1, 2, 3)
    avec :
    1 = un pointeur sur mon fichier (du type ifstream)
    2 = le string à remplir
    3 = un délémiteur (optionnel)

    ??????

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    1 = pas un pointeur, directement une référence.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    oui c'est ce que je voulais dire

    mais ça n'empêche qu'il n'accepte toujours pas getline.

    Quand je lui passe seulement 2 paramètres, il dit qu'il en manque :
    error C2780: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &,const _E)' : expects 3 arguments - 2 provided
    et quand je lui passe les 3 paramètres ça ne lui va pas non plus :
    error C2784: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &,const _E)' : could not deduce template argument for 'class std::basic_istream<_E,_Tr> &' from 'class ifstream'

    J'aimerais bien savoir ce qu'il attend exactement parceque là je vois pas

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    On dirait qu'il ne se rend pas compte que ifstream descend de basic_istream...

    Essaie avec std::ifstream, si tu n'as pas mis de using namespace std; en début de source...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    C'est un peu mieux.
    Il me reconnaît getline mais me dit : "none of the 2 overloads can convert parameter 1 from type 'class ifstream' ".

    J'ai écris : std::ifstream::getline(file, lignes);
    ("file" est la référence demon fichier et "lignes" le string à remplir)

    Décidément, il va jamais me lacher.

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Oups!
    Tu peux annuler, j'ai dit une connerie.

    Je ne sais pas pourquoi il ne reconnait pas l'ascendance template de ifstream...

    Normalement, ifstream descend de basic_ifstream< char, char_traits<char> > qui descend de basic_istream< char, char_traits<char> >...

    Je ne comprends pas pourquoi ça ne marche pas, mais tu peux essayer ceci:
    Code C++ non-testé : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::basic_ifstream< char, char_traits<char> > & bFile = file;
    std::getline(bFile, lignes);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    Citation Envoyé par Sachiel31
    J'utilise la fonction getline de istream mais le compilateur ne la reconnait pas.
    J'ai essayé la même méthode que pour les string mais ca ne marche pas non plus.
    Oublie std::istream::getline() qui fonctionne sur des buffers de caractères. Utilises plutôt std::getline().

    PS: La FAQ C++ est ton amie.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  12. #12
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    C'est bon j'ai résolu mon problème hier soir.
    C'est la librairie qui posait problème.

    Je vous remercie pour votre aide.

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

Discussions similaires

  1. Problème avec std::string
    Par Laughing Man dans le forum C++
    Réponses: 18
    Dernier message: 07/02/2008, 19h04
  2. Problème avec std::multiplies
    Par Bakura dans le forum SL & STL
    Réponses: 8
    Dernier message: 25/05/2007, 19h07
  3. problème avec std::cin
    Par _LVEB_ dans le forum SL & STL
    Réponses: 4
    Dernier message: 20/02/2007, 00h35
  4. Problème avec std::vector
    Par dhoorens dans le forum SL & STL
    Réponses: 4
    Dernier message: 31/12/2006, 14h27
  5. Problème avec std::Vector
    Par mister3957 dans le forum SL & STL
    Réponses: 8
    Dernier message: 16/02/2006, 10h18

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