unable to print euro symbol in a “C” program

怎甘沉沦 提交于 2021-02-05 05:38:07

问题


I am unable to print the euro symbol. The program I am using is below.

I have set the character set to codepage 1250 which has 0x80 standing for the euro symbol.

Program
=======

#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;
}

Output
======
Current locale is: English_India.1250
Euro character: ?

Other details
=============
OS: Windows Vista
Compiler: vc++ 2008 express edition


回答1:


Read this: http://www.columbia.edu/~em36/wpdos/eurodos.html

There are sections, which could help you a lot:

  • Display the euro-symbol in full-screen DOS and command consoles in Windows NT, 2000, or XP
  • Display the euro symbol in DOS and command console windows in Windows 2000 and XP (built-in support for TrueType fonts)
  • Display the euro in DOS and command consoles in Windows 2000 and XP (bitmap and TrueType fonts)



回答2:


the 0x80 char is falsely stated as the euro sign, it is the Padding Char. See here: http://bugs.mysql.com/bug.php?id=28263

If I remember correctly it must something around 0x120, try printing in a for loop from 120 to 130




回答3:


#include <stdio.h>

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

I used GCC compiler and this works fine. The output is: €


This only work with C++ and C99



来源:https://stackoverflow.com/questions/1969385/unable-to-print-euro-symbol-in-a-c-program

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!