0

我试图让这个 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";
}
4

2 回答 2

3

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

于 2012-08-20T04:58:22.867 回答
1

我想你想要

std::string y("1");

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

于 2012-08-20T04:55:25.257 回答