0

私はC++プログラミングが初めてで、txtファイルの内容を取得し、その内容を辞書txtファイルでチェックする割り当てがあります。string[] を関数に送信すると、 std::basic 文字列を std::string に変換できないというエラーが常に表示されます

    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[]は string 配列です。型が一致しません。

関数のプロトタイプを変更する必要がありinDictionaryます。

于 2013-04-08T23:17:07.840 に答える