2009-12-28 2 views
4

Je n'arrive pas à imprimer le symbole de l'euro. Le programme que j'utilise est ci-dessous.impossible d'imprimer le symbole de l'euro dans un programme "C"

J'ai mis le jeu de caractères à codepage 1250 qui a 0x80 pour le symbole de l'euro.

Programme
=======

#include <stdio.h> 
#include <locale.h> 

int main() 
{ 
    printf("Current locale is: %s\n", setlocale (LC_ALL, ".1250")); 
    printf("Euro character: %c\n", 0x80); 
    getchar(); 
    return 0; 
} 

Sortie
======
locale actuelle est: English_India.1250
caractère Euro:?

Autres détails
=============
OS: Windows Vista
compilateur: vC++ 2008 Express Edition

Répondre

3

Lire ceci: http://www.columbia.edu/~em36/wpdos/eurodos.html

Il sont des sections, qui pourraient vous aider beaucoup:

  • Afficher le symbole de l'euro en plein écran DO S et consoles de commande sous Windows NT, 2000 ou XP
  • Afficher le symbole de l'euro dans les fenêtres DOS et la console de commande dans Windows 2000 et XP (prise en charge intégrée des polices TrueType)
  • Afficher l'euro sous DOS et les consoles de commande dans Windows 2000 et XP (polices bitmap et TrueType)
+2

Ceci est la bonne réponse, la police de la console doit être changé. En outre, vous devez appeler SetConsoleCP() pour basculer la page de code de la console, setlocale() ne fait pas cela. –

+0

Merci. Vous devez définir la page de codes d'entrée et de sortie de la console. c'est-à-dire SetConsoleCP(), SetOutputConsoleCP(). Se reporter à http://msdn.microsoft.com/en-us/library/ms683169%28VS.85%29.aspx http://msdn.microsoft.com/en-us/library/ms686013%28VS .85% 29.aspx –

3

le char 0x80 est faussement indiqué comme le signe euro, il est le Pad Padding. Voir ici: http://bugs.mysql.com/bug.php?id=28263

Si je me souviens bien, il faut quelque chose autour de 0x120, essayez d'imprimer dans une boucle 120-130

+1

Le code 0x80 pour le signe euro est correct dans les pages de code Windows 1250 et Windows 1252. –

2
#include <stdio.h> 

int main() 
{ 
printf("\u20AC"); 
return 0; 
} 

je compilateur GCC et cela fonctionne très bien. La sortie est: €


Ce ne fonctionnent qu'avec C++ et C99

+0

Je voulais imprimer '€' en utilisant un jeu de caractères non-unicode. Le problème était avec la console Windows comme indiqué par SLA80 ci-dessus. Merci quand même. –

Questions connexes