Printing a Unicode Symbol in C
c, ncurses, unicode
Solution
Two problems: first of all, a `wchar_t` must be printed with `%lc` format, not `%c`. The second one is that unless you call `setlocale` the character set is not set properly, and you probably get `?` instead of your star. The following code seems to work though:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main() {
setlocale(LC_CTYPE, "");
wchar_t star = 0x2605;
wprintf(L"%lc\n", star);
}
And for `ncurses`, just initialize the locale before the call to `initscr`.
Problem
I'm trying to print a unicode star character (0x2605) in a linux terminal using C. I've followed the syntax suggested by other answers on the site, but I'm not getting an output: ``` #include <stdio.h> #include <wchar.h> int main(){ wchar_t star = 0x2605; wprintf(L"%c\n", star); return 0; } ``` I'd appreciate any suggestions, especially how I can make this work with the `ncurses` library.