【问题标题】:wchar not working in VC++ 2005wchar 在 VC++ 2005 中不起作用
【发布时间】:2010-07-16 10:22:09
【问题描述】:
wstring ws(L"Press 'q' to end.");
wcout << ws;

错误 C2679:二进制“

这是在 VC++ 2005 Win32 控制台应用程序中,使用默认设置创建的...我认为这意味着 UNICODE 已打开?我刚刚发现 cout 似乎不支持 wstring,这看起来有点难看 - 是真的吗?这个应用程序与返回 wstrings 的库进行交互,它也可能是 Unicode,我需要更改一些项目设置吗?

【问题讨论】:

    标签: unicode stl visual-c++-2005


    【解决方案1】:

    试试

    wstring ws(L"Press 'q' to end."); 
    wcout << ws.c_str(); 
    

    顺便说一句:wchar != wstring

    【讨论】:

    • 你是说 STL 不能处理它自己的字符串类型?
    • 很多时候它不能。在整个规范中,各种位都有奇怪的漏洞。多年来,供应商已经修复了大多数(类似于 hash_maps 包含),并正式作为 0x 更新的一部分。
    • 谁说 wstring == wchar? wstring 是 wchar 的容器。
    • 你自己说的。 wstring 是一个容器。当传递给 iostream 时,容器应该如何(或为什么)知道如何处理它所包含的内容?
    • 一定是VC++2005的STL实现有错误,标准中定义的operator&lt;&lt;wostreamwstring肯定有过载。
    猜你喜欢
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2010-09-25
    相关资源
    最近更新 更多