[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:截图
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章的版权归属于【原创作者】; 转载或引用时请【保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/17931859.html