|
本帖最后由 萌王 于 2021-5-6 15:24 编辑
- static std::wstring format_string(CONST WCHAR* pszText, ...)
- {
- std::wstring result;
- va_list args;
- va_start(args, pszText);
- int len = _vscwprintf(pszText, args);
- if (len < 0)
- {
- wprintf_s(L"_vscwprintf failed, len=%i, error=%i\n", len, errno);
- return L"";
- }
- result.resize((size_t)len);
- vswprintf_s(const_cast<WCHAR*>(result.data()), result.size() + sizeof(WCHAR), pszText, args);
- va_end(args);
- return result;
- }
- int wmain(int argc, wchar_t* argv[])
- {
- wprintf_s(L"%S\n", setlocale(LC_ALL, ".UTF8"));
- std::wstring msg = format_string(L"msg: %hs", u8"abc你好");
- wprintf_s(L"msg: %s\n", msg.c_str());
- return 0;
- }
复制代码
输出:
Chinese (Simplified)_China.utf8
_vsctprintf failed, len=-1, error=0
msg:
操作系统:Windows 10 x64
编译器:VS2019
项目字符集:UNICODE |
上一篇: C语言数组练习题下一篇: 我用URLDownloadToFile下载,怎么没有成功啦
|