c++ - 我无法用 wcout 输出字符串

标签 c++ string visual-studio-2013 cout

这是 this question 的一种重复.我遵循了建议(我认为)并包含了 <string>但是我的脸上出现了完全相同的错误:

error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)


#include <string>
#include <iostream>

using namespace std;

int main() {
    string texte;
    texte = "pouet";
    wcout << texte << endl;
    return 0;
}

编辑:我一点也不自豪地说这个问题是由于我没有选择正确的项目作为“启动项目”造成的。 Visual Studio 有点难以理解……但是,最初的真正问题与我的真实项目有关,是关于无法通过 wcout 输出的标准字符串。 .我重新格式化了问题以相应地重新定位主题。随心所欲地对我投反对票,我应得的......

最佳答案

std::basic_string 的输出运算符未重载对流的任意字符类型进行操作。您的选择是:

  • 创建一个 std::wstring来自您的 std::string ,例如:
    std::wcout << std::wstring(texte.begin(), texte.end());
    
  • 由于即使字符类型不匹配,输出运算符也会为 C 样式字符串重载,因此您可以获得一个字符数组:
    std::wcout << texte.c_str();
    
  • 关于c++ - 我无法用 wcout 输出字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426698/

    相关文章:

    c++ - 多次调用存储过程时出现 mySQL C++ 连接器 "Commands out of sync"

    c - 如何在用户键入 "quit"时打破循环?

    c++ - OpenCV 错误:断言失败 <scn == 3::scn == 4> 在未知函数中,

    c# - IVsTextViewCreationListener 在 VSIX 项目从 2012 年更新到 2013 年后不起作用

    c# - 选定的选项

    c++ - 如何使 C++ 模板函数与返回类型无关以供将来专门化

    c++ - 支持软实时的 Linux C++ 定时器

    c++ - CAN 总线通信 - MSG 结构 (WinUser.h) Linux 等价物

    java - 如何检查一个字符串是否包含另一个字符串的一部分? (不是整个字符串)

    java - 从字符串中删除最后一个字符