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

SL & STL C++ Discussion :

std::cout et std::wstring


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut std::cout et std::wstring
    Bonjour,

    Je souhaite afficher des wstring comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        string coucou = "coucou";
        cout <<"coucou : "<<coucou<<endl;
    J'obtiens l'erreur suivante à la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error C2679: binary '<<' : no operator found which takes a right-hand operand
     of type 'std::wstring' (or there is no acceptable conversion)

    Pourtant il esiste la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template<class CharType, class Traits, class Allocator>
       basic_ostream<CharType, Traits>& operator<<(
          basic_ostream<CharType, Traits>& _Ostr,
          const basic_string<CharType, Traits, Allocator>& _Str
    );
    D'après vous, d'où vient le problème ?

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Regarde bien, le prototype n'a qu'un seul type de caractère CharType. std::cout, son type de Chartype, c'est char, mais wstring, c'est... wchar, d'où problème

  3. #3
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Il faut utiliser std::wcout et ses amis

    Voir : http://c.developpez.com/faq/cpp/?pag...TRINGS_wstring

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    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 392
    Par défaut
    Tout en sachant que wcout ne marche pas sous Dev-C++
    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.

  5. #5
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 950
    Par défaut
    Citation Envoyé par Médinoc
    Tout en sachant que wcout ne marche pas sous Dev-C++
    sous minGW ou uniquement sous dev-cpp?
    si tu peut developper pourquoi, ca m'interresse

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Devcpp n'est qu'un IDe, c'est donc avec MingW que veut dire Medinoc

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    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 392
    Par défaut
    Mais ça foire avec le mingW fourni avec Dev-C++ : je ne sais pas si ça marche avec celui fourni avec code::blocks.

    hansaplast: erreurs de compilation, et quand on bricole un peu les defines pour faire compiler, on a une erreur ailleurs, etc.

    J'avais posté un message sur le forum, on m'a répondu qu'on n'avais jamais réussi à le faire marcher, et que ce devait être dû à une mauvaise compilation de mingW.
    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.

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    Citation Envoyé par Miles
    Regarde bien, le prototype n'a qu'un seul type de caractère CharType. std::cout, son type de Chartype, c'est char, mais wstring, c'est... wchar, d'où problème
    Au temps pour moi !!!
    J'ai copié collé le mauvais bout de code
    C'était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wstring wchaine= L"coucou";
        cout <<"wchaine: "<<wchaine<<endl;
    qui posait problème

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    Citation Envoyé par Fiquet
    Il faut utiliser std::wcout et ses amis

    Voir : http://c.developpez.com/faq/cpp/?pag...TRINGS_wstring
    Oui c'est ça la solution ^^
    Je connaissais pas std::wcout.

    Merci bien

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    est un char et non un wchar_t, donc là aussi problème Tu ne peux pas mélanger les 2 ensembles, il faut faire une conversion à un endroit.

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    Citation Envoyé par Miles
    est un char et non un wchar_t, donc là aussi problème Tu ne peux pas mélanger les 2 ensembles, il faut faire une conversion à un endroit.
    A la base je pensais que l'operateur << fonctionnait avec n'importe quel base_string c'est pour ça que j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << [string value] << [wstring value]
    Mais depuis l'epxlication que m'a donné Fiquet je comprends que ça peut poser problème ^^

  12. #12
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    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 287
    Par défaut
    Citation Envoyé par hansaplast
    [...pas de wcout...]
    sous minGW ou uniquement sous dev-cpp?
    si tu peut developper pourquoi, ca m'interresse
    C'est un problème de GCC sous windows.
    Pourquoi ? C'est comme ça. Pas implémenté. Faut voir avec les responsables des projets MinGW et Cygwin qui s'occupent des deux ports de GCC pour windows.
    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...

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

Discussions similaires

  1. std::cout lorsque une frame est instanciée
    Par salucoco dans le forum wxWidgets
    Réponses: 4
    Dernier message: 22/05/2008, 00h40
  2. Problème de surcharge d'opérateur std::cout
    Par Nyko17 dans le forum C++
    Réponses: 14
    Dernier message: 28/04/2008, 13h01
  3. Encore une question sur std::cout
    Par tnarol dans le forum SL & STL
    Réponses: 2
    Dernier message: 01/04/2008, 10h10
  4. Réponses: 3
    Dernier message: 12/12/2007, 20h31
  5. plantage std::cout avec VS 2005
    Par globule71 dans le forum Visual C++
    Réponses: 35
    Dernier message: 16/04/2007, 20h56

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