根据"传统智慧是错误的",如果在
答案适用于VS2008或VS2010,比此版本早的版本不在考虑范围内。
stdout
上设置适当的标志,则CRT会做出相当多的工作,以平滑处理Win32控制台中Unicode的不一致性。但是,在这里我没有使用cstdio
风格的函数——我正在使用iostream
库。 _setmode
如何与标准流std::wcout
、std::wclog
和std::wcerr
交互(如果有的话)?如果不能与流一起使用,那么是否可能/如何获得等效的行为?答案适用于VS2008或VS2010,比此版本早的版本不在考虑范围内。
setlocale()
来实现这一点。当然,如果可能的话,我更喜欢符合标准的解决方案。 - Billy ONealwprintf
也是一个msvc特定的扩展,但文章中提到的_setmode()
调用应用于stdout
,这使得合理地假设可能有一种方法使iostreams表现出相同的方式。 - Billy ONeal