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 :

Probleme de Compilation de la STL


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Probleme de Compilation de la STL
    ( sur Visual C++ 6 )

    Je cherche a utiliser un petit prog qui cherche un mot (rapidement) dans un fichier.
    Je suis a peu pres sur que le code qu on m a proposer est bon mais j ai des erreurs de compilation.

    Voici le code:

    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 <fstream>
    #include <iterator>
    #include <string>
    #include <iostream>
     
    using namespace std;
     
     
    void main()
    {
    	std::ifstream in("LM1-4.txt");
    	std::string c ( (std::istreambuf_iterator<char>(in)) , (std::istreambuf_iterator<char>())); 
     
     
    std::string::size_type p = c.find("30P");
     
    if (p != std::string::npos){cout<<"bon";}
     
    }
    Et voici le log:

    c:\s-labat\standard\standard.cpp(13) : error C2061: syntax error : identifier 'in'
    c:\s-labat\standard\standard.cpp(13) : error C2066: cast to function type is illegal
    c:\s-labat\standard\standard.cpp(13) : error C2059: syntax error : ','
    c:\s-labat\standard\standard.cpp(16) : error C2065: 'c' : undeclared identifier
    c:\s-labat\standard\standard.cpp(16) : error C2228: left of '.find' must have class/struct/union type


    Aparemment, il comprend pas la declaration de mon string.
    J ai vraiment besoin de ce code (celui que j ai fait etait bien trop lent), donc si vous voyez le truc...

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Peut etre que cette declaration est mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string c ( std::istreambuf_iterator<char>(in) , std::istreambuf_iterator<char>());
    Mais alors j ai l erreur suivante:

    c:\s-labat\standard\standard.cpp(13) : error C2664: '__thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(const char *,unsigne
    d int,const class std::allocator<char> &)' : cannot convert parameter 1 from 'class std::istreambuf_iterator<char,struct std::char_traits<char> >' to 'const char *'
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called


    Plutot indigeste ... j suis desespere

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Voici ma derniere trouvaille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    std::ifstream in("toto.txt");
     
    std::string c (std::istreambuf_iterator<char> (in),std::istreambuf_iterator<char> b()); 
     
    std::string::size_type p=c.find("aaa");
     
    if (p != std::string::npos){cout<<"bon";}
    cette fois ci, la declaration de std::string c passe a la compilation , mais
    j ai une nouvelle erreur:

    error C2228: left of '.find' must have class/struct/union type

    Pourtant j ai lu dans l aide que find() est une methode de basic_string donc je comprend pas pourquoi il naccepte pas mon utilisation

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Pb resolu, sous vc++ 6 il faut faire:

    std::copy(
    std::istreambuf_iterator<char>(in),
    std::istreambuf_iterator<char>(),
    std::back_inserter(c)
    );

    voila j ai pas trouvé tout seul

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

Discussions similaires

  1. Problème de compilation de proftpd
    Par berry dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 15/01/2005, 18h06
  2. [API][Cup] problem niveau compilation
    Par KoLziG dans le forum Général Java
    Réponses: 1
    Dernier message: 02/01/2005, 19h30
  3. [JSP & TAGLIB] Probleme de compilation
    Par GesMo dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 17/05/2004, 15h03
  4. [TP]Probleme de compilation sous TP7
    Par yffick dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 18/12/2003, 20h32
  5. Problemes de compilation avec g++ sous linux
    Par Selimmel dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/09/2003, 13h43

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