使用string.c_str时C ++编译错误

时间:2016-02-07 14:49:01

标签: c++ string

出于某种原因,我使用以下代码收到以下错误。对我来说,一个案例中的std :: string有一个c_str函数而另一个案例中有一个dosen&t;对我来说真的没有意义。

print("The percentage of missing action types is {0}".format
     (((clean_sessions['action_type'] == 'Missing').value_counts())/(clean_sessions['action_type'].count())
    ))

然后检查我添加了另一个字符串。

../Shader.hpp:29:19: error: request for member ‘c_str’ in ‘code’, which is of non-class type ‘std::__cxx11::string(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> > (*)()) {aka std::__cxx11::basic_string<char>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> > (*)())}’
   loadString(code.c_str());


void loadFile(const char* fn)
{
    std::ifstream fin(fn);
    if(!fin.good())
        throw std::runtime_error("File could not be opened.");
    std::string code(std::istreambuf_iterator<char>(fin), std::istreambuf_iterator<char>());
    fin.close();
    loadString(code.c_str());
}

现在这段代码编译完毕。我不明白为什么它适用于一个版本但不适用于另一个版本。

0 个答案:

没有答案