wchar:c語言中,輸出和表示中文


c語言中的printf和putchar都是為ascii碼准備的。要想顯示中文,必須通過<wchar.h>這個頭文件中(和對應的庫)提供的函數wprintf和putwchar來實現。

 

在使用wprintf之前,設置c語言自身的環境,使用setlocale即可。有<locale.h>提供該函數。示例如下

 1 #include<stdio.h>
 2 #include<wchar.h> //putwchar wprintf wchar_t 
 3 #include<locale.h> //setlocale
 4 
 5 int main(void)
 6 {
 7     //讓wprintf可以輸出中文s
 8     setlocale(LC_ALL, "zh_CN.UTF-8");       //注意這里的zh_CN.UTF-8不能寫成chs
 9 
10     wprintf(L"--%c--%lc--\n", L'a', L'');
11     putwchar(L'');
12     putwchar(L'\n');
13 
14     wchar_t a = L'';
15     char  b = 'b';
16     wchar_t *c = L"我是中國好少年";
17     char *d = "我是中國好少年";
18     char *e = "e我是中國好少年";
19     wprintf(L"--%lc--%c--\n", a, b);
20  
21     wprintf(L"--%ls--%s--%s--\n", c,d,e);
22 }

 

 

 

結果如下

注意:

1. wprintf的format字符串,必須使用L標識,表示這是一個寬字符串,才能為wprintf所用。

2. wprintf中,使用%c或%s可以打印正常的ascii字符或ascii字符串,也可以打印寬字符串。但是要打印寬字符和寬字符串,最好還是用%lc或%ls。

3. 用了wprintf,最好別用printf了,我遇到過問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM