首页 > 解决方案 > C++ 如何打印 wstring?

问题描述

我正在使用从某些函数返回 wstrings 的 C++ 库。当我尝试将它们打印到 std::cout 时,我收到一条消息,基本上说它找不到<<in的重载cout << fnReturningWstring();。这段小代码演示了这个问题。错误行是 14。

L"mumble"替换为"mumble"wstring替换为的相同代码string可以完美运行。所以我的问题是“如何打印 wstring?”

     1  #include <iostream>
     2  #include <string>
       
     3  using std::wstring;
     4  using std::cout;
       
     5  wstring
     6  world()
     7  {
     8    wstring whirled(L"whirled!");
     9    return whirled;
    10  }
       
    11  int main()
    12  {
    13    cout << L"hello, ";
    14    cout << world();
    15    
    16    return 0;
    17  }

标签: visual-c++operator-keywordiostreamwstring

解决方案


将“cout”更改为“wcout”。

澳大利亚、加拿大、新西兰和美国可能是仅有的四个使用 ASCII 的国家。我住在澳大利亚。我不知道 cin、cout、cerr 和 clog 有“宽”版本。wcin、wcout、wcerr 和 wclog。我还在 Microsoft 的 Visual C++ 上发帖,一位好心人解释了这一切。


推荐阅读