C ++ if语句编码错误

时间:2012-08-20 04:54:32

标签: c++ xcode macos

我试图让这个if语句工作,但每次我尝试构建它时,都会收到此错误:

no matching constructor for initialization of std::string'(aka'basic_string<char>')

我在Mac上使用Xcode,如果这有帮助,如果你能解释为什么我需要这样做,这样我可以在下次避免这个问题

#include <iostream>
#include <string>

using namespace std;

int main()
{
    cout << "               Menu" << endl << endl;
    cout << "   press 1 to play the word game." << endl << endl;
    cout << "  press 2 too see the answer to 2+5." << endl << endl;

    string UserInput;
    cin >> UserInput;


    std::string y('1');
    if (UserInput == y) {

    }
    cout << "Enter A Word";
}

2 个答案:

答案 0 :(得分:3)

std::string有默认构造函数和构造函数重载,需要const char*,但没有构造函数重载需要char所以要么使它y("1"),要么执行std::string y(1, '1')

答案 1 :(得分:1)

我想你想要

std::string y("1");

单引号表示字符而不是字符串,您不能从字符构造std :: string。