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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 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...

  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 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

  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 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

  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 ^^

+ 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