我无法使用 wcout 输出字符串

Bog*_*mer 7 c++ string cout visual-studio-2013

这是这个问题的重复。我遵循了建议(我认为)并包括在内,<string>但在我的脸上抛出了完全相同的错误\xc2\xa0:

\n\n
\n

错误 C2679: 二进制 \'<<\' : 找不到采用 \'std::string\' 类型的右侧\n 操作数的运算符(或者没有可接受的转换)

\n
\n\n
#include <string>\n#include <iostream>\n\nusing namespace std;\n\nint main() {\n    string texte;\n    texte = "pouet";\n    wcout << texte << endl;\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:我一点也不自豪地说这个问题是由于我没有选择正确的项目作为“起始项目”而引起的。Visual Studio 有点难以理解\xe2\x80\xa6 但是,最初的实际问题涉及我的实际项目,并且是关于无法通过wcout. 我重新格式化了问题以相应地重新定位主题。如你所愿,给我投反对票,这是我应得的\xe2\x80\xa6

\n

Luk*_*uke 1

这可以在我的 CLion 上使用最新的 MinGW 编译并正常运行

#include <string>
#include <iostream>

using namespace std;

int main() {
    string texte;
    texte = "pouet";
    cout << texte << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

对于 wcout(又名宽字符串),这应该提供正确的输出:

#include <string>
#include <iostream>

using namespace std;

int main() {
    wstring texte;
    texte = L"pouet";
    wcout << texte << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

cout 输出带有 1 字节宽(通常是 ASCII)字符的“常规”字符串,而 wcout 是为“宽”字符串而设计的,这些字符串由表示形式占用超过 1 个字节的字符组成。