运行此代码段:
wchar_t *wstr = L"áßå®";
wprintf(L"%s",wstr);
给出输出:
«
而不是
áßå®
我是wchar_t
的新手。如何获得预期的输出?
答案 0 :(得分:5)
我相信,您需要更改代码
wprintf(L"%s",wstr);
到
wprintf(L"%ls",wstr);
参考:从C11
标准,章节§7.29.2.1,强调我的
l(ell)
指定以下d,i,o,u,x或X转换说明符适用于long int或unsigned long int参数;以下n转换说明符适用于指向long int参数的指针;以下c转换说明符适用于wint_t参数; 以下s
转化说明符适用于指向wchar_t
参数的指针; 或对后续a,A,e,E,f,F,g无效或G转换说明符。