2013-04-26 1 views
2

J'ai essayé ce code simple pour afficher des caractères polonais en utilisant la classe 'std :: wstring'. La classe est construite avec succès depuis le tableau wchar_t mais je ne sais pas comment l'afficher à l'écran. Cette ligne "cout < < X < < endl;" ne compile pas. Est-il possible de produire des caractères polonais dans une application de console écrite en C++ natif? Si oui, comment contourner cela? Ci-dessous un code simple que j'ai essayé de compiler:Comment afficher les caractères polonais dans une application de console C++?

#include <iostream> 
#include <conio.h> 
#include <string> 

int main(void) 
{ 
    using namespace std ; 
    const wchar_t data[] = {'ą', 'ę', 'ć'} ; 
    wstring X(data) ; 
    cout << X << endl ; 
    getch() ; 
    return 0 ; 
} 

Répondre

2

Utilisation std::wcout au lieu de cout

Après avoir utilisé wcout vous ne devez plus utiliser cout dans votre programme. La première fois que vous cout ou wcout il définit l'orientation de stdout pour la durée de votre programme.

+0

si j'utilise wcout alors il dit qu'il n'est pas déclaré et si j'utilise std :: wcout alors il est dit que wcout n'est pas un membre de std. J'utilise Dev-C++ v.4.9.9.2 – user1978386

+0

Regardez la réponse en haut ici. http://stackoverflow.com/questions/15581569/c-gives-an-error – Salgar

+0

@Salgar L'utilisation de 'std :: cout' ou' std :: wcout' ne devrait pas affecter l'orientation de stdout, et l'orientation de stdout devrait être sans rapport avec 'cout' et' wcout': l '"orientation", ici, est une restriction due au fait que C utilise le même objet 'FILE' pour les sorties de caractères larges et étroites. C++ a deux objets différents, chacun avec son propre tampon, et vous devriez être capable d'utiliser les deux dans un seul programme. Bien sûr, comme ils envoient tous deux sur le même périphérique, vous devrez peut-être insérer des flushs. Mais si vous ne pouvez pas sortir les deux, l'implémentation est cassée. –

Questions connexes