unable to print euro symbol in a "C" program

7.7k Views Asked by At

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

3

There are 3 best solutions below

2
On BEST ANSWER

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)
1
On

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

1
On
#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