How to initialize a wchar_t variable?

前端 未结 3 1928
你的背包
你的背包 2020-12-31 12:59

I am reading the book: C: In a Nutshell, and after reading the section Character Sets, which talks about wide characters, I wrote this program:

<         


        
相关标签:
3条回答
  • 2020-12-31 13:36

    This works for me

    #include <stdio.h>
    #include <stddef.h>
    #include <wchar.h>
    #include <locale.h>
    
    int main(void) {
      wchar_t wc = L'\x3b1';
    
      setlocale(LC_ALL, "en_US.UTF-8");
      wprintf(L"%lc\n", wc);
      return 0;
    }
    
    0 讨论(0)
  • 2020-12-31 13:50

    try L'\x03B1' It might just solve your problem. IF you're in doubt you can try :

    '\u03b1' to initialize.
    
    0 讨论(0)
  • 2020-12-31 13:52
    wchar_t wc = L'\x3b1';
    

    is the correct way to initialise a wchar_t variable to U+03B1. The L prefix is used to specify a wchar_t literal. Your code defines a char literal and that's why the compiler is warning.

    The fact that you don't see the desired character when printing is down to your local environment's console settings.

    0 讨论(0)
提交回复
热议问题