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 du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    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 éprouvé

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    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 sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    Par défaut
    Tout en sachant que wcout ne marche pas sous Dev-C++

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

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

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 589
    Points
    41 589
    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.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    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 du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    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 du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    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 éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    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 282
    Points : 11 036
    Points
    11 036
    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.

+ 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, 01h40
  2. Problème de surcharge d'opérateur std::cout
    Par Nyko17 dans le forum C++
    Réponses: 14
    Dernier message: 28/04/2008, 14h01
  3. Encore une question sur std::cout
    Par tnarol dans le forum SL & STL
    Réponses: 2
    Dernier message: 01/04/2008, 11h10
  4. Réponses: 3
    Dernier message: 12/12/2007, 21h31
  5. plantage std::cout avec VS 2005
    Par globule71 dans le forum Visual C++
    Réponses: 35
    Dernier message: 16/04/2007, 21h56

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