0

我是 C++ 编程的新手,我有一个任务是获取 txt 文件的内容并使用字典 txt 文件检查内容。当我将 string[] 发送到我的函数时,我总是收到一个错误,指出 std::basic 字符串无法转换为 std::strin

    ifstream d_file("dictionary.txt");
    string l;
    vector<string> user_vec;

    while( getline( d_file, l ) ) {
        user_vec.push_back( l);
    }

    size_t line_count = user_vec.size();

    for( size_t i = 0; i < line_count; ++i )
    {
        // cout << i << "    " << user_vec[i] << endl;
        bool result =  inDictionary(word, user_vec[i]);

    }



}

bool inDictionary(string word,string dictionary[])
{
    cout<<word<< dictionary<<endl;

}
4

2 回答 2

1

您正在传递一个字符串,该函数需要一个字符串数组。

更改inDictionary为以下,因为user_vec[i]是一个字符串。

bool inDictionary(string& word,string& dictionary)
{
    cout<<word<< dictionary<<endl;
}

或者,如果您想将所有行传递给inDictionary函数,则将向量传递给函数。

bool inDictionary(string& word, std::vector<string>& dictionary)
{
   //...
}

然后你会像传递向量bool result = inDictionary(word, user_vec);

希望有帮助。

于 2013-04-08T23:16:19.083 回答
0

user_vec[i]是一个字符串; string dictionary[]是字符串数组,类型不匹配。

您必须更改inDictionary函数的原型。

于 2013-04-08T23:17:07.840 回答