lnlidawei

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

[c][cpp]:  wchar_t 输出“中文”

 

 

 

 

一、说明:

 

  0、所用语言:c,编译:gcc  -o  wchar_t  wchar_t.c  -std=c2x  

 

  1、个宽字符变量的定义: wchar_t   s  =  L''

 

  2、个宽字符变量的输出控制符: %Lc,  %lc

 

  3、个宽字符数组变量的定义:wchart_t     s[]  =  L"中国",  wchar_t   *s  =  L"中国"

 

  4、个宽字符变量的输出控制符:  %Ls,   %ls

 

 

 

二、代码实例:

 1 [wit@fedora tmp]$ cat  wchar_t.c 
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include <wchar.h>
 5 #include <locale.h>
 6 
 7 
 8 // wide string, and output chinese.
 9 void wide_strings ()
10 {
11         setlocale (LC_ALL, "zh_CN.UTF-8");
12 
13         wchar_t w11 = L'';
14         wchar_t w12[] = L"中文";
15         wchar_t *w13 = L"中文";
16 
17         wchar_t w21 = L'E';
18         wchar_t w22[] = L"English";
19         wchar_t *w23 = L"English";
20 
21         wprintf (L"\n\tw11c_Chinese(lc) = %lc\n", w11);    // %ls
22         wprintf (L"\n\tw12_Chinese(ls) = %ls\n", w12);    // %ls
23         wprintf (L"\n\tw13pt_Chinese(Ls) = %Ls\n", w13);    // %ls
24 
25         wprintf (L"\n\tw21c_English(lc) = %lc\n", w21);    // %ls
26         wprintf (L"\n\tw22_English(ls) = %ls\n", w22);    // %ls
27         wprintf (L"\n\tw23pt_English(Ls) = %Ls\n", w23);    // %ls
28 
29         wprintf (L"\n\n");
30 }
31 
32 
33 int main (int argc, char* argv[], char* envp[])
34 {
35         wide_strings ();
36 
37         return 0;
38 }
39 [wit@fedora tmp]$ 
40 [wit@fedora tmp]$ 
41 [wit@fedora tmp]$ gcc -o wchar_t wchar_t.c -std=c2x  &&  ./wchar_t 
42 
43         w11c_Chinese(lc) =44 
45         w12_Chinese(ls) = 中文
46 
47         w13pt_Chinese(Ls) = 中文
48 
49         w21c_English(lc) = E
50 
51         w22_English(ls) = English
52 
53         w23pt_English(Ls) = English
54 
55 
56 [wit@fedora tmp]$ 
57 [wit@fedora tmp]$ 

 

 

 

三、参考资料:

 

  1、wchar:c语言中,输出和表示中文  https://www.cnblogs.com/mindulmindul/p/12711896.html

 

  2、参考资料1:截图

 

 

posted on 2023-12-28 08:19  lnlidawei  阅读(30)  评论(0编辑  收藏  举报