非 unicode printf 不起作用

Non-unicode printf's don't work

我在我的 C++ 控制台应用程序中启用了宽字符串支持:

_setmode(_fileno(stdin), _O_WTEXT);
_setmode(_fileno(stdout), _O_WTEXT);

我现在可以使用 wprintf(或 std::wcin)读取和输出 unicode 字符,但正因为如此,普通的 printf(和 std::cin)调用不会工作,因为他们会抛出异常。有什么办法可以bypass/correct这个吗?更换它们听起来不像是解决方案。

使用wprintf输出宽字符。

printf 不允许写入 wide/unicode 流:

https://msdn.microsoft.com/es-es/library/wc7014hz.aspx