C语言中char占用8个字节,而单个汉字占用16个字节,这导致在输入输出上会有些许错误。。。
利用wchar_t可以储存汉字到一块空间里而不是像char需要两块空间
注: 在输出前需要将环境转换为中文,在代码前加入 setlocale(LC_ALL, "");
(包含在头文件locale.h)
输入:wprintf(L"%ls", s);
输出:wprintf(L"%ls", s);
如果需要输出单个汉字,同理使用 wprintf(L"%lc", message);
实例:
include<stdio.h>
include<locale.h>
int main(char argv, char* args){
setlocale(LC_ALL, "");
wchar_t s[256];
wscanf(L"%ls", s); //输入
wprintf(L"%lc", s[2]); //输出
return 0;
}
结果:
IN:你好世界!
OUT:世
(第一次写文章,如果哪里手抖写错了还请包涵😂)