简单的C++程序没有使用wstrings和cout进行编译

Men*_*des 3 c++ c++11 visual-studio-2012

我正在使用Visual Studio 2012构建这个简单的C++程序:

#include <stdafx.h>

#include <string>
#include <iostream>

int main()
{
    std::wcout << "Hello World...";

    std::string input_data;

    std::string output_data("Hello. Please type your name");

    std::wcout << output_data;
    std::wcin >> input_data;

    std::wcout << "Your name is " << input_data;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我无法编译.得到以下错误:

error C2678: binary '>>' : no operator found which takes a left-hand operand of type 'std::wistream' (or there is no acceptable conversion)

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

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

IntelliSense: no operator "<<" matches these operands
            operand types are: std::basic_ostream<wchar_t, std::char_traits<wchar_t>> << std::string    

IntelliSense: no operator "<<" matches these operands
            operand types are: std::wostream << std::string

IntelliSense: no operator ">>" matches these operands
            operand types are: std::wistream >> std::string
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

Mas*_*ssa 8

您应该尝试更改...或all/for/...的所有std::string事件(在第一种情况下,像这样的字符串前缀,例如,完美地工作:std::wstringwcinwcoutcincoutL"aaa"

#include <string>
#include <iostream>

int main()
{
    std::wcout << L"Hello World...";

    std::wstring input_data;

    std::wstring output_data(L"Hello. Please type your name");

    std::wcout << output_data;
    std::wcin >> input_data;

    std::wcout << L"Your name is " << input_data;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)